Nginx 平滑升级、Nginx的一些基础配置
阅读原文时间:2023年07月09日阅读:3

# Nginx 平滑升级

方案一:使用Nginx服务信号进行升级

1.将就版本的sbin目录下可执行nginx进行备份(mv nginx nginxold)

2.将新版本 configure、make 后会生成一个objs目录,你只要将objs/sbin目录下的nginx可执行文件拷贝到nginxold相同目录

3.发送kill -USR2 `more /usr/local/logs/nginx.pid` 信号,这里不明白可以往上节翻

4.发送kill -QUIT `more /usr/local/logs/nginx.pid.oldbin`

方案二:Nginx实名make平滑升级

1.将就版本的sbin目录下可执行nginx进行备份(mv nginx nginxold)

2.将新版本 configure、make 后会生成一个objs目录,你只要将objs/sbin目录下的nginx可执行文件拷贝到nginxold相同目录

3.进入源码安装的目录执行 make upgrade

# Nginx 配置文件
worker_processes 1; # worker 进程数量

events { # 配置与用户网络连接
worker_connections 1024;
}

http { # 代理配置,一个http可以代理多个地址,所以这里可以设置有多个server
include mime.types;
default_type application/octet-stream;

sendfile        on;  
keepalive\_timeout  65;

server {  
    listen       80;# 端口  
    server\_name  localhost;# 服务器名  
    location / {    # 访问路径,localhost:80/  
        root   html;    #配置访问目录,如果配置了user pc1;那么这里的目录指的是/home/pc1/html  
        index  index.html index.htm;  # 当访问localhost:80/ 会在html目录下依次查找index.html index.htm文件,找到了就返回  
    }

    error\_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
        root   html;  
    }

}

}

配置worker进程所属用户,所以你可以对用户分配权限,让worker进程只能访问到该访问的内容

user是配置指令,user_1用户名,group用户所属组,group默认值是和用户名一样

user user_1 [group]

配置master启动多少个worker进程

是否可以开启worker进程

master_process off/on;

配置master最多启动1个worker进程,master_process必须先注释不然就没用

worker_processes 1;

是否守护进程启动nginx,默认是on

daemon on/off;

配置master 进程pid存放文件

pid logs/nginx.pid;

配置错误日志路劲,info日志级别

日志级别有:debug 调试|info 信息|notice 通知|warn 警告|error 错误|crit 临界|alter 报警|emerg 紧急,

info以下的等级都会带来大量的磁盘io消耗,影响Nginx的性能

error_log不仅可以在全局配置,还可以在http/sever/location中配置

error_log logs/error.log [info];

多个文件分开配置。

这里是加载main.conf的配置信息,也可以这么加载 include /home/pc1/html/conf.d/*.conf,加载目录下.conf后缀的文件

include main.conf;

events块配置:配置用户与Nginx服务的网络链接,这里的配置对服务器的影响比较大

配置Nginx网络链接序列化

所谓连接序列化只的是,

当有访问请求的时候该配置打开的时候所有worker进程都会过来拉取任务处理,而off的时候master会主动推给一个worker进程处理

默认off

accept_mutex on|off;

设置是否用户worker进程可以同时接受多个网络连接,默认值off

multi_accept on|off;

和multi_accept on一起使用,设置worker进程最大连接数

默认512

worker_connections number;

设置Nginx使用那种事件驱动来处理网络消息

类型有:select|poll|epoll|kqueue等

默认值是根据不同的操作系统决定

use method;

你也可以在源码安装的时候来配置

--with-select_module 加入select

--without-select_module 移除select

--with-poll_module

--without-poll_module

http块

NINE-Type 设置你对应的文件类型

include mime.types; # 这里直接在http块配置引用的mime.types文件
default_type application/octet-stream;

你可以查看mime.types文件,可以看到文件类型对应的后缀

你可以在http、server、location中配置它,那样的话location返回值的类型就是以配置的文件类型进行返回

因为web端不同的文件类型显示的方式是不一样的所以才需要该配置去进行协调

配置自定义服务器日志

access_log 配置日志路径,log_format是日志的内容,$http_user_agent这是forma中的内置变量。后面再详细讲解

他们可以配置在http\server\location块中的

log_format mylog_format '============>This my format:$http_user_agent';
access_log logs/my.log log_format 1024;

该参数开启能大大提高磁盘读写的性能

默认是关闭的

sendfile on|off;

长连接超时时间

keepalive_timeout 75s;

长连接处理次数,当长连接处理100次后断开连接。

keepalive_requests 100;