Nginx-高性能Web服务器

news2024/9/20 20:18:15

前言:
平时总听hex说Nginx服务器,也经常找他解决项目上的nginx配置,但自己一直不懂,不懂就学。
听他说:nginx最重要是 location url 配置( 正则)、反向代理与负载均衡,平时项目用这些比较多。

其实服务器上部署了什么服务,就称服务器为XX服务器,如 Nginx服务器,Apache服务器,Tomcat服务器、JBoss服务器、Weblogic服务器 (Apache、 Tomcat 、JBoss、Weblogic异同)(Nginx与Apache的区别)。

Nginx是一个web服务器软件(2023年09月 Web 服务器排行榜 ),网站前端部署在服务器上,其实是部署在服务器的Nginx软件上。之前,牛腩新闻发布系统部署在IIS,而Nginx现在用的多,因为它小且高效

Nginx基础

  • 安装

nginx安装在linux系统上,而linux系统在控制一个服务的时候是通过信号量。所以,控制部署在服务器上的nginx服务的时候通过信号量。
nginx也可以安装在windows系统,但不多。(windows下的安装详解)

  • Nginx 信号控制与进程管理

网站依托Nginx服务器运行,在操作的过程中,不能立刻down掉。
例如网站正在有人支付,突然被关掉了,不合适,通过启动参数可以等待工作线程完成后,在关闭主线程。
在这里插入图片描述

# Kill -信号选项 nginx的主进程号
Kill -HUP 4873

Nginx应用

  • Nginx虚拟主机配置

打开nginx的conf文件,server为虚拟主机

# 全局区
worker_processes 1; # 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数

Event {
# 一般是配置nginx连接的特性
# 如1个work能同时允许多少连接
 worker_connections  1024; # 这是指 一个子进程最大允许连1024个连接
}

http {  #这是配置http服务器的主要段
     Server1 { # 这是虚拟主机段
        listen 8080; #端口
        server_name 192.168.1.204; #域名

        location / {
                root /var/www/html; #根目录
                index index.html;
                access_log  logs/proxy.access.log  main;
        }
     }
     Server2 {
     }
}
  • Nginx 配置文件

通过修改nginx配置,让部署在nginx服务器上的网站能被外界以不同的方式被访问。
server及location的配置分为三种:location = patt {} [精准匹配]、location patt{} [一般匹配]、location ~ patt{} [正则匹配]

在这里插入图片描述

  • Nginx日志分割

nginx的访问日志一般按照日期进行分割,一旦nginx有问题方便定位,通过 shell+定时任务+nginx信号管理,完成日志按日期存储

	 #!/bin/bash
     log_base="/usr/local/nginx/logs"
     log_path=${log_base}/$(date -d yesterday +"%Y")/$(date -d yesterday +"%m")

     mkdir -p $log_path
     mv $log_base/access.log $log_path/access_$(date -d yesterday +"%Y%m%d").log
     kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
     #echo access_$(date -d yesterday +"%Y%m%d").log
  • Nginx与Gzip设置

在这里插入图片描述
浏览器—请求----> 声明可以接受 gzip压缩 或 deflate压缩 或compress 或 sdch压缩
从http协议的角度看–请求头 声明 acceopt-encoding: gzip deflate sdch
服务器–>回应—把内容用gzip方式压缩---->发给浏览器
浏览<-----解码gzip-----接收gzip压缩内容----

# gzip配置的常用参数
gzip on|off;  #是否开启gzip
gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
gzip_disable #正则匹配UA 什么样的Uri不进行gzip
gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在)
gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
gzip_proxied          # 设置请求者代理服务器,该如何缓存内容
gzip_types text/plain  application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css
gzip_vary on|off  # 是否传输gzip压缩标志

Nginx实战

  • Nginx 浏览器缓存配置

服务器响应文件内容时,同时响应etag标签(内容的签名,内容一变,它也变)和 last_modified_since 2个标签值
浏览器下次去请求时,头信息发送这两个标签, 服务器检测文件有没有发生变化,如无,直接头信息返回 etag,last_modified_since
浏览器知道内容无改变,于是直接调用本地缓存,这个过程,也请求了服务器,但是传递的内容极少,对于变化周期较短的,如静态html,js,css,比较适于用这个方式

	location ~ .*\.(jpg|png|gif|bmp)$ {
		 expires 30d;        
	}
  • Nginx rewrite配置在location中能够被访问更加灵活

语法规则:

	if  (条件) {}  设定条件,再进行重写 
	set #设置变量
	return #返回状态码 
	break #跳出rewrite
	rewrite #重写

通过rewrite判断浏览器重写

	 if ($http_user_agent ~ MSIE) {
           #return 404;
           rewrite ^(.*)$ /ie.html break;
     }
  • Nginx+memcache 组合

Nginx优化

  • Nginx连接数优化
  • Nginx 反向代理与负载均衡
  • Nginx集群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/987657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

豪华卧室怎么装?快来看看吧

一阵轻松的叹息&#xff0c;由柔软的质地、新鲜的空气和扎实的设计带来。只需稍微借鉴这些豪华卧室的创意&#xff0c;这一切都可以成为你的。 用华丽的四柱床提升 四柱床的柱子为床框增添了另一种维度&#xff0c;同时保持通风。长长的线条提高了房间的高度&#xff0c;吸引…

KT142C-sop16语音芯片ic内置320Kbyte_USB更新内置空间详细说明

KT142C内置的是320K的空间&#xff0c;但是实际的大小&#xff0c;在电脑里面显示&#xff0c;应该是315Kbyte。 打开我的电脑&#xff0c;芯片连接PC之后&#xff0c;自动多出来了一个U盘&#xff0c;如下图所示&#xff1a; 这里的空间只有315KB &#xff0c;因为文件系统占…

Vue2项目练手——通用后台管理项目第八节

Vue2项目练手——通用后台管理项目 菜单权限功能tab.jsLogin.vueCommonAside.vuerouter/index.js 权限管理问题解决router/tab.jsCommonHeader.vuemain.js 菜单权限功能 不同的账号登录&#xff0c;会有不同的菜单权限通过url输入地址来显示页面对于菜单的数据在不同页面之间的…

C# 通过自定义控件实现炫酷的时间显示

先看效果 话不多说,直接上代码 基础的自定义控件 LED_Num public partial class LED_Num : UserControl{#region 属性/// <summary>/// 绘图区域/// </summary>Rectangle DrawArea = Rectangle.

Linux系统——MySQL安装与卸载(CentOS7 超详细演示)

Linux系统 安装与卸载 MySQL—— 超详细演示! MySQL8.0.26-Linux版安装1. 准备一台Linux服务器2. 下载Linux版MySQL安装包3. 上传MySQL安装包4. 创建目录,并解压5. 安装mysql的安装包6. 启动MySQL服务7. 查询自动生成的root用户密码8. 修改root用户密码9. 创建用户10. 并给root…

安卓手机怎么录屏?看这里,小白也能学会

“安卓手机可以录屏吗&#xff1f;最近需要用到录屏功能&#xff0c;在手机里面找了很久&#xff0c;也没有找到&#xff0c;听别人说安卓手机是有录屏的&#xff0c;有人知道怎么打开吗&#xff1f;” 在日常生活中&#xff0c;我们常常需要录制手机屏幕上的操作步骤&#xf…

QQ通讯录在哪里?3个步骤教你查找

QQ是一个综合性通讯平台&#xff0c;简单实用&#xff0c;并且具有许多令人喜爱的特点和优势。它给大家提供了丰富的功能和便利的交流方式&#xff0c;丰富了人们的日常生活。作为一款人们常用的聊天软件&#xff0c;其qq通讯录在哪里呢&#xff1f;本文将以苹果手机为例&#…

产品路线图如何制定?斯坦福大学产品管理课程为你支招

产品路线图是一个动态文档&#xff0c;它传达了与产品策略有关的项目清单及其优先次序。一个合格的产品路线图依赖哪些输入&#xff1f;又需要清晰地输出哪些信息&#xff1f; 本篇文章将与你分享&#xff0c;我在斯坦福大学「产品管理加速课程」中习得的产品路线图制定方法。…

抖音无需API开发连接Stable Diffusion,实现自动根据评论区的指令生成图像并返回

抖音用户使用场景&#xff1a; 随着AI绘图的热度不断升高&#xff0c;许多抖音达人通过录制视频介绍不同的AI工具&#xff0c;包括产品背景、使用方法以及价格等&#xff0c;以吸引更多的用户。其中&#xff0c;Stable Diffusion这款产品受到了许多博主达人的青睐。在介绍这款产…

git-命令行显示当前目录分支

搜索家目录.bashrc隐藏文件&#xff0c;找到如下内容 forlinxubuntu:~$ vi .bashrcif [ "$color_prompt" yes ]; thenPS1${debian_chroot:($debian_chroot)}\[\033[01;32m\]\u\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ elsePS1${debian_chroot:($debian_ch…

气传导耳机什么牌子好?盘点五款好用的气传导耳机分享

​对于气传导耳机&#xff0c;大家最关心的可能是佩戴会不会不舒服&#xff1f;音质好不好&#xff1f;会不会漏音&#xff1f;等问题。面对这些问题&#xff0c;今天我就为大家推荐几款市面上最好的气传导耳机&#xff0c;总有一款适合你的&#xff01; ①NANK南卡00压气传导…

一次预制体丢失[XX prefab at index n is missing]的排查经历 及 【用代码查找场景中的预制体】

一、症状描述 &#xff08;1&#xff09;从【主场景】跳转【某场景】时&#xff0c;报错——预制体丢失[prefab is missing] &#xff08;2&#xff09;在编辑器单独启动该场景&#xff0c;没有报错 二、症状溯源 场景里面有预制体实例&#xff0c;但是我把预制体的资源删除…

脚本:python实现樱花树

文章目录 代码效果 代码 from turtle import * from random import * from math import * def tree(n, l):pd () # 下笔# 阴影效果t cos ( radians ( heading () 45 ) ) / 8 0.25pencolor ( t, t, t )pensize ( n / 3 )forward ( l ) # 画树枝if n > 0:b random () *…

算法训练营day44|动态规划 part06:完全背包 (完全背包、 LeetCode518. 零钱兑换 II、377. 组合总和 Ⅳ )

文章目录 完全背包518. 零钱兑换 II思路分析代码实现思考总结 377. 组合总和 Ⅳ思路分析代码实现思考总结 完全背包 完全背包和01背包问题唯一不同的地方就是&#xff0c;每种物品有无限件。 依然举这个例子&#xff1a; 背包最大重量为4。 物品为&#xff1a; 重量价值物品…

电工-什么是电压

什么是电压&#xff1f;电压计算公式和单位换算及电位差概念讲解 前面第一课中学过电路的组成&#xff0c;而第二课中介绍了电流的一些基本概念、计算公式和单位换算&#xff0c;然而我们在电路等用电的地方还听到过电压这个概念&#xff0c;本文就给大家介绍什么是电压及电压…

【校招VIP】产品功能设计之思维创意考察

考点介绍&#xff1a; 在产品设计的过程中&#xff0c;为了解决用户在产品使用过程中的问题&#xff0c;或者想让产品相比于竞品更加与众不同&#xff0c;那就需要有创意思维。创意是一种通过创新思维意识&#xff0c;来挖掘资源组合方式从而提升资源价值的方法。 产品功能设计…

【django】Forbidden (CSRF cookie not set.)

CSRF 表示django全局发送post请求均需要字符串验证 功能&#xff1a; 防止跨站请求伪造的功能 工作原理&#xff1a; 客户端访问服务器端&#xff0c;在服务器端正常返回给客户端数据的时候&#xff0c;而外返回给客户端一段字符串&#xff0c;等到客户端下次访问服务器端时…

正中优配:股票顶部形态有哪些?

股票顶部形状是投资者们在炒股中必备的技术之一&#xff0c;它是指股票价格上涨到最高点之后开始跌落的形状。因而&#xff0c;判断股票顶部形状十分有必要&#xff0c;能够协助投资者采纳正确的交易战略&#xff0c;避免经济损失。本文将从多个视点分析股票顶部形状&#xff0…

Arthas 排查JVM问题总结

一、安装 在Arthas官网&#xff1a;https://arthas.aliyun.com/中下载安装包。 执行java -jar arthas-boot.jar就可以启动。 二、常见命令 dashboard&#xff1a;查看JVM全局概览&#xff0c;包括线程、堆内存、GC还有系统信息等 thread&#xff1a;常见命令&#xff0c;查看…

【JS进阶】防抖与节流

防抖与节流 1.防抖 1.1 为什么要防抖&#xff1f; 在项目中&#xff0c;有的操作是高频触发的&#xff0c;但是其实触发一次就好了&#xff0c;比如我们短时间内多次缩放页面&#xff0c;那么我们不应该每次缩放都去执行操作&#xff0c;应该只做一次就好。再比如说监听输入…