nginx配置备忘2
#nginx.conf
#启动 到目录下执行 #start nginx 开启 #nginx.exe -s quit 关闭 #nginx.exe -s reload 重启 # 文档 http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass worker_processes 4; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; worker_rlimit_nofile 65535; events {
#window下使用nginx,如果要设置worker_connections大于1024 到这里下载win版本http://nginx-win.ecsds.eu/download/ worker_connections 4096;
#如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接。否则,一个工作进程可以同时接受所有的新连接。
multi_accept on;
} http {
#设置服务器组 后面用到 # ip_hash;(訪问ip) hash $remote_addr consistent; consistent使增加服务器时大部分seesion仍然一致 # 每一个请求按訪问ip的hash结果分配。这样每一个訪客固定訪问一个后端服务器,能够解决session的问题。如果被分配的服务器down了则转发到组内其他服务器 upstream go_server_group{
#这两个地址的8081端口下有相同的http服务 hash $remote_addr consistent; server 127.0.0.1:8081;
server 192.200.0.244:8081; } #目前就一台 这里其实不用设置 upstream php_xxpt{ hash $remote_addr consistent; server 127.0.0.1:18080 ; } charset utf-8; tcp_nodelay on; log_not_found off; types_hash_max_size 2048; types_hash_bucket_size 64; client_max_body_size 16M; include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; #==客户端链接超时时间 keepalive_timeout 65; #keepalive_requests 10000; #gzip on; # 请求Limits limit_req_log_level warn; limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=100r/s; #这里定义ip_limit,单个ip每秒100次请求,后面使用 #当配置多个server节点时,默认server names的缓存区大小就不够了,需要手动设置大一点 server_names_hash_bucket_size 512; #server表示虚拟主机可以理解为一个站点,可以配置多个server节点搭建多个站点 #每一个请求进来确定使用哪个server由server_name确定 map $http_upgrade $connection_upgrade { default upgrade; "" close; } map $remote_addr $proxy_forwarded_elem { # IPv4 addresses can be sent as-is ~^[0-9.]+$ "for=$remote_addr"; # IPv6 addresses need to be bracketed and quoted ~^[0-9A-Fa-f:.]+$ "for=\"[$remote_addr]\""; # Unix domain socket names cannot be represented in RFC 7239 syntax default "for=unknown"; } map $http_forwarded $proxy_add_forwarded { default "$proxy_forwarded_elem"; } server { listen 80; server_name localhost; #注意加斜杆 location /go/{ limit_req zone=ip_limit; #前面定义ip_limit,这里使用 proxy_pass http://go_server_group/;
#注意加斜杆 http://127.0.0.1/go/test 等于 http://127.0.0.1:8081/test ; 字符go没有传参 include proxy.conf; } location /index.php{ proxy_pass http://php_xxpt/index.php; include proxy.conf; } location /public{ proxy_pass http://php_xxpt/public; include proxy.conf; } location /demo1 { proxy_pass http://192.200.0.3/demo1;
#http://127.0.0.1/demo1/index.php ; 等于 http://192.200.0.3/demo1/index.php ; demo1有传参 include proxy.conf; } location =/ { return 404; } location / { return 503; } }
server_tokens off; #隐藏nginx版本号 }
------------------------------------------------------------------------------------------------
#proxy.conf
proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; # Proxy headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Forwarded $proxy_add_forwarded; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; # Proxy timeouts proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s;
#启动 到目录下执行 #start nginx 开启 #nginx.exe -s quit 关闭 #nginx.exe -s reload 重启 # 文档 http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass worker_processes 4; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; worker_rlimit_nofile 65535; events {
#window下使用nginx,如果要设置worker_connections大于1024 到这里下载win版本http://nginx-win.ecsds.eu/download/ worker_connections 4096;
#如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接。否则,一个工作进程可以同时接受所有的新连接。
multi_accept on;
} http {
#设置服务器组 后面用到 # ip_hash;(訪问ip) hash $remote_addr consistent; consistent使增加服务器时大部分seesion仍然一致 # 每一个请求按訪问ip的hash结果分配。这样每一个訪客固定訪问一个后端服务器,能够解决session的问题。如果被分配的服务器down了则转发到组内其他服务器 upstream go_server_group{
#这两个地址的8081端口下有相同的http服务 hash $remote_addr consistent; server 127.0.0.1:8081;
server 192.200.0.244:8081; } #目前就一台 这里其实不用设置 upstream php_xxpt{ hash $remote_addr consistent; server 127.0.0.1:18080 ; } charset utf-8; tcp_nodelay on; log_not_found off; types_hash_max_size 2048; types_hash_bucket_size 64; client_max_body_size 16M; include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; #==客户端链接超时时间 keepalive_timeout 65; #keepalive_requests 10000; #gzip on; # 请求Limits limit_req_log_level warn; limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=100r/s; #这里定义ip_limit,单个ip每秒100次请求,后面使用 #当配置多个server节点时,默认server names的缓存区大小就不够了,需要手动设置大一点 server_names_hash_bucket_size 512; #server表示虚拟主机可以理解为一个站点,可以配置多个server节点搭建多个站点 #每一个请求进来确定使用哪个server由server_name确定 map $http_upgrade $connection_upgrade { default upgrade; "" close; } map $remote_addr $proxy_forwarded_elem { # IPv4 addresses can be sent as-is ~^[0-9.]+$ "for=$remote_addr"; # IPv6 addresses need to be bracketed and quoted ~^[0-9A-Fa-f:.]+$ "for=\"[$remote_addr]\""; # Unix domain socket names cannot be represented in RFC 7239 syntax default "for=unknown"; } map $http_forwarded $proxy_add_forwarded { default "$proxy_forwarded_elem"; } server { listen 80; server_name localhost; #注意加斜杆 location /go/{ limit_req zone=ip_limit; #前面定义ip_limit,这里使用 proxy_pass http://go_server_group/;
#注意加斜杆 http://127.0.0.1/go/test 等于 http://127.0.0.1:8081/test ; 字符go没有传参 include proxy.conf; } location /index.php{ proxy_pass http://php_xxpt/index.php; include proxy.conf; } location /public{ proxy_pass http://php_xxpt/public; include proxy.conf; } location /demo1 { proxy_pass http://192.200.0.3/demo1;
#http://127.0.0.1/demo1/index.php ; 等于 http://192.200.0.3/demo1/index.php ; demo1有传参 include proxy.conf; } location =/ { return 404; } location / { return 503; } }
server_tokens off; #隐藏nginx版本号 }
------------------------------------------------------------------------------------------------
#proxy.conf
proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; # Proxy headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Forwarded $proxy_add_forwarded; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; # Proxy timeouts proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s;
#隐藏 X-Powered-By
proxy_hide_header X-Powered-By;