Skip to content

Nginx 部署配置

1. Nginx 环境部署

shell
[root@tango-rac01 src]# tar -xzvf nginx-1.22.1.tar.gz
  • 编译配置
shell
[root@tango-rac01 nginx-1.22.1]# ./configure
[root@tango-rac01 nginx-1.22.1]# make
[root@tango-rac01 nginx-1.22.1]# whereis nginx
nginx: /usr/local/nginx
  • 启动 Nginx
shell
[root@tango-rac01 nginx-1.22.1]# cd /usr/local/nginx/
[root@tango-rac01 nginx]# ./sbin/nginx
[root@tango-rac01 nginx]# ss -antl
State       Recv-Q Send-Q                                        Local Address:Port                                                       Peer Address:Port                              
LISTEN      0      511                                                       *:80                                                                    *:*

2. Nginx 不同场景配置

2.1 Nginx 配置文件介绍

text
...              #全局块

events {         #events块
   ...
}

http      #http块
{
    ...   #http全局块
    server        #server块
    { 
        ...       #server全局块
        location [PATTERN]   #location块
        {
            ...
        }
        location [PATTERN] 
        {
            ...
        }
    }
    server
    {
      ...
    }
    ...     #http全局块
}

全局块:配置影响 nginx 全局的指令。一般有运行 nginx 服务器的用户组,nginx 进程 pid 存放路径,日志存放路径,配置文件引入,允许生成 worker process 数等。

events 块:配置影响 nginx 服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

http 块:可以嵌套多个 server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type 定义,日志自定义,是否使用 sendfile 传输文件,连接超时时间,单连接请求数等。

server 块:配置虚拟主机的相关参数,一个 http 中可以有多个 server。

location 块:配置请求的路由,以及各种页面的处理情况。

2.2 反向代理配置

简单配置如下:

text
server {
    keepalive_requests 120;
    listen       80;
    server_name  192.168.112.135; 
    location ~ /news/ {
       proxy_pass  http://192.168.112.101:8080; 
    } 
    location ~ /prod/ {
       proxy_pass  http://192.168.112.101:8081; 
    } 
}

2.3 负载均衡配置

text
upstream myServer {    
    server 192.168.112.101:8080 down;   
    server 192.168.112.101:8090 weight=2;   
    server 192.168.112.101:6060;   
    server 192.168.112.101:7070 backup;   
}
#指定负载均衡策略为ip_hash
upstream myServer {
    ip_hash
    server 192.168.112.101:8080;   
server 192.168.112.101:6060;   
}

down:表示当前的 server 暂时不参与负载

Weight:默认为 1,weight 越大,负载的权重就越大。

max_fails:允许请求失败的次数默认为 1,当超过最大次数时,返回 proxy_next_upstream 模块定义的错误

fail_timeout:max_fails 次失败后,暂停的时间。

Backup:其它所有的非 backup 机器 down 或者忙的时候,请求 backup 机器。所以这台机器压力会最轻。

2.4 动静分离配置

text
server {
   listen       10000;
   server_name  localhost;
  
  #拦截后台请求
  location / {
    proxy_pass http:// 192.168.112.101:8888;
    proxy_set_header X-Real-IP $remote_addr;
  }

  #拦截静态资源
  location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
    root /static/;
    autoindex on;
   }
}