#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { #設置多個service server_names_hash_bucket_size 64; #-------------Nginx配置ip_hash導致負載均衡算法失效解決方法---------start----------------------------- #真實服務器上一級代理的IP地址或者IP段,可以寫多行 set_real_ip_from 127.0.0.1; #從哪個header頭檢索出要的IP地址 real_ip_header X-Forwarded-For; # 遞歸排除IP地址,ip串從右到左開始排除set_real_ip_from里面出現的IP,如果出現了未出現這些ip段的IP,那么這個IP將被認為是用戶的IP real_ip_recursive on; #-------------Nginx配置ip_hash導致負載均衡算法失效解決方法---------end----------------------------- include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; # 使用默認策略,輪詢 upstream szsfs { # 下面介紹幾種負載均衡策略,其中輪詢、weight、ip_hash是nginx內置的,可以直接使用。fair和url_hash需要第三方支持才可以使用。 # 1、輪詢(默認):每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。 server 192.168.255.10:18008; server 192.168.255.10:18009; # 2、weight:指定權重,按照權重進行請求的分配。wight和訪問比例成正比,適合后端服務器性能不均的情況。 # 下面的配置就會經常訪問8288的服務。如果后端服務器8288 down掉,能夠立刻切換到8299或者8290。如果8288再次啟動,則又能回到原有的權重配置上。8288可以繼續提供服務。 # server 192.168.255.10:18008 weight=10; # server 192.168.255.10:18009 weight=1; # 3、ip_hash:每個請求按照ip的hash結果進行分配,這樣的話每個訪客固定請求一個后端服務器,可以解決session沒共享的問題。 # 如果8288 down掉,則依然可以訪問,可能會緩存8289或者8290。如果8288啟動,則會從8289或8290切換到8288。 ip_hash; # server 192.168.255.10:18008; # server 192.168.255.10:18009; # 4、fair(第三方):后端服務器響應時間短的優先分配。 # fair; # server 192.168.255.10:18008; # server 192.168.255.10:18009; # 5、url_hash(第三方):按訪問的url的hash結果來分配請求,這樣相同url會分配到相同的后端服務器。適合后端服務器有緩存的情況。 # hash $request_uri; # hash_method crc32; # server 192.168.255.10:18008; # server 192.168.255.10:18009; } ll server { #生產服務器web出口服務器 192.168.255.10:20089 代理 App區 192.168.255.10:20089的配置內容 --->對外轉發操作 listen 20089; server_name localhost;# 這里是服務器的IP或者域名 charset utf-8; #charset koi8-r; #access_log logs/host.access.log main; location / { # root html; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60; #-------------Nginx配置ip_hash導致負載均衡算法失效解決方法---------start----------------------------- #把原http請求的Header中的Host字段也放到轉發的請求里 proxy_set_header Host $http_host; #記錄客戶端請求的真實IP proxy_set_header X-Real-IP $remote_addr; #用於記錄代理信息的,每經過一級代理(匿名代理除外),代理服務器都會把這次請求的來源IP追加在X-Forwarded-For中 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #報頭是用於識別協議(HTTP 或 HTTPS) proxy_set_header X-Forwarded-Proto $scheme; #客戶端瀏覽器的主機名 proxy_set_header REMOTE-HOST $remote_host; #其他相關配置入下,可以根據需要添加配置 #允許客戶端請求的最大單文件字節數 #client_max_body_size 10m; #緩沖區代理緩沖用戶端請求的最大字節數 #client_body_buffer_size 128k; #nginx跟后端服務器連接超時時間(代理連接超時) #proxy_connect_timeout 90; #后端服務器數據回傳時間(代理發送超時) #proxy_send_timeout 90; #連接成功后,后端服務器響應時間(代理接收超時) #proxy_read_timeout 90; #設置代理服務器(nginx)保存用戶頭信息的緩沖區大小 #proxy_buffer_size 4k; #proxy_buffers緩沖區,網頁平均在32k以下的話,這樣設置 #proxy_buffers 4 32k; #高負荷下緩沖大小(proxy_buffers*2) #proxy_busy_buffers_size 64k; #設定緩存文件夾大小,大於這個值,將從upstream服務器傳 #proxy_temp_file_write_size 64k; #-------------Nginx配置ip_hash導致負載均衡算法失效解決方法---------end----------------------------- #代理轉發 proxy_pass http://szsfs/; #index /pwplogin/toLoginPage.do index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 404 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 192.168.255.10:80 # #location ~ \.php$ { # proxy_pass http://192.168.255.10; #} # pass the PHP scripts to FastCGI server listening on 192.168.255.10:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 192.168.255.10:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } #生產服務器web出口服務器192.168.255.10:20088 短信服務 --->對App區 192.168.255.10:20089進行轉發操作 server { listen 20088; server_name localhost; charset utf-8; location / { #root html; # 配置外網App區應用 互聯網短信服務器地址信息 proxy_pass https://qydx.53api.com; index index.html index.htm; } } #生產服務器web出口服務器192.168.255.10:20087 微信對賬單 --->對App區 192.168.255.10:20089進行轉發操作 server { listen 20087; server_name localhost; charset utf-8; location / { #root html; # 配置外網App區應用 調用微信對賬單服務器地址信息 proxy_pass https://api.weixin.qq.com; index index.html index.htm; } } #生產服務器web出口服務器192.168.255.10:20086 token校驗碼 --->對App區進行轉發操作 server { listen 20086; server_name localhost; charset utf-8; location / { #root html; # 配置外網app調用 微信對賬單服務器地址的token校驗碼 #proxy_pass https://wap.psbc.com; #生產 proxy_pass https://www.smeia.net; index index.html index.htm; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }