nginx.config
#user nobody;
worker_processes 1;
error_log logs/error.log;
error_log logs/notice.log notice;
error_log logs/info.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#limit_req_zone $binary_remote_addr zone=one:10m rate=20r/s;
#第一个参数:$binary_remote_addr 表示通过 remote_addr 这个标识来做限制,“binary_”的目的是缩写内存占用量,是限制同一客户端ip地址。
#第二个参数:zone=one:10m表示生成一个大小为10M,名字为one的内存区域,用来存储访问的频次信息。
#第三个参数:rate=1r/s表示允许相同标识的客户端的访问频次,这里限制的是每秒1次,还可以有比如30r/m的。
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
gzip_min_length 1024;
gzip_buffers 4 8k;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
upstream hosts{
#ip_hash; #配置iphash,多台服务器负载,不需要则去掉
#server 192.168.10.200:8080 weight=1 max_fails=2 fail_timeout=5s;
# 这里是在5s内尝试3次失败即认为主机不可用weight=1 max_fails=2 fail_timeout=5s
#server 192.168.10.152:8080 weight=1 max_fails=2 fail_timeout=5s;
#server 192.168.10.160:8080 weight=1 max_fails=2 fail_timeout=5s;
#server 192.168.10.220:8080 ;
#server 192.168.10.102:8080 ;
#server 192.168.10.103:8080 ;
#server 192.168.10.200:8080 ;
#server 192.168.10.152:8080 backup;
#server 127.0.0.1:8080 ;
#server 127.0.0.1:8080 ;
#server 127.0.0.1:8082 ;
#server 127.0.0.1:8083 ;
#server 127.0.0.1:8084 ;
server 127.0.0.1:8085 ;
#server 127.0.0.1:8086 ;
server 127.0.0.1:8087 ;
server 127.0.0.1:8088 ;
#server 127.0.0.1:8089 ;
}
server {
listen 8098 ssl;
server_name swyy.com.cn;
ssl_certificate ../ssl/2346574_swyy.com.cn_nginx/2346574_swyy.com.cn.pem;
ssl_certificate_key ../ssl/2346574_swyy.com.cn_nginx/2346574_swyy.com.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://hosts; #请求转向8080hosts定义的服务器列表
root html;
index index.html index.htm;
#proxy_next_upstream error timeout invalid_header http_500 http_404 http_504 http_503;
#如果Nginx向后端服务器请求的时候,如果出现了错误,超时,指定错误的响应码的时候,再请求上游下一个服务器。
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_redirect off;
proxy_ssl_session_reuse off;
client_max_body_size 30M; #设置请求体大小
client_body_buffer_size 256k;
proxy_connect_timeout 30; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_read_timeout 30; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_send_timeout 30; #后端服务器数据回传时间(代理发送超时)
fastcgi_buffers 4 1M;
fastcgi_buffer_size 1M;
#设置请求头大小
proxy_buffering on;
proxy_buffer_size 1M; #高负荷下缓冲大小(proxy_buffers*2)
proxy_buffers 8 2M; #proxy_buffers缓冲区,
proxy_busy_buffers_size 2M;
#proxy_ignore_client_abort on;
proxy_max_temp_file_size 128m;
#limit_req zone=one burst=15 nodelay;
#第一个参数:zone=one 设置使用哪个配置区域来做限制,与上面limit_req_zone 里的name对应。
#第二个参数:burst=5,重点说明一下这个配置,burst爆发的意思,这个配置的意思是设置一个大小为5的缓冲区当有大量请求(爆发)过来时,超过了访问频次限制的请求可以先放到这个缓冲区内。
#第三个参数:nodelay,如果设置,超过访问频次而且缓冲区也满了的时候就会直接返回503,如果没有设置,则所有请求会等待排队。
}
}
}