Nginx 常用配置文件

正向代理

测试

1
curl https://www.baidu.com -v -x 127.0.0.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
listen 1080;
access_log logs/proxy.log;
resolver 114.114.114.114; #指定DNS服务器IP地址
server_name proxy.ifan.tutulis.com;
proxy_connect;
proxy_connect_allow 80 443;
proxy_connect_connect_timeout 10s;
proxy_connect_read_timeout 10s;
proxy_connect_send_timeout 10s;
# forward proxy for non-CONNECT request
location / {
# proxy_pass $scheme://$http_host$request_uri
proxy_pass http://$host;
proxy_set_header Host $host;

proxy_buffers 256 4k;
proxy_max_temp_file_size 0;

proxy_connect_timeout 10s;
}
}

反向代理

1
2
3
location /apis/ {
proxy_pass http://127.0.0.1:8000;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
upstream apis {
server 127.0.0.1:8000 weight=10 max_fails=3 fail_timeout=30s;
server 127.0.0.1:9000 backup; # 热备
}
location / {
add_header Cache-Control no-cache;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://apis;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; # 允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; # 缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 300; # nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 300; # 后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; # 连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; # 设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; # proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; # 高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; # 设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
  • weight: 加权轮询
  • max_fails: 允许请求失败的次数默认为1。当超过最大次数时,返回 proxy_next_upstream 模块定义的错误.
  • fail_timeout: max_fails次失败后,暂停的时间
  • max_conns: 限制最大的接受连接数
  • backup: 其它所有的非 backup 机器 down 或者忙的时候,请求 backup 机器。所以这台机器压力会最轻。

代理静态文件

1
2
3
4
5
6
7
8
9
10
location / {
add_header Content-Type "text/html;charset=utf-8";
root /opt/web/static; # 站点根目录
index index.html index.htm; # 默认导航页
}

location /imgs {
root /opt/web/imgs/;
index index.html;
}