解决nginx 503 Service Temporarily Unavailable方法示例

时间:2021-05-19

最近网站刷新后经常出现503 Service Temporarily Unavailable错误,有时有可以,联想到最近在nginx.conf里做了单ip访问次数限制,(limit_req_zone $binary_remote_addr zone=allips:20m rate=20r/s;) 把这个数量放大后在刷新发现问题解决。(还顺便把这个改大了 limit_req zone=allips burst=50 nodelay; )为了证实该问题,反复改动该数量测试发现问题确实在这。这个数量设得太小有问题,通过fiddler发现web页面刷新一下,因为页面上引用的js,css,图片都算一个连接。所以单个页面刷新下就有可能刷爆这个限制,超过这个限制就会提示503 Service Temporarily Unavailable。

附上nginx.conf

#user nobody;worker_processes 1;#worker_rlimit_nofile 100000; #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 { include mime.types; default_type application/octet-stream; ##cache## proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_temp_path /home/temp_dir; proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g; ##end###limit per ip per second access times 10 limit_req_zone $binary_remote_addr zone=allips:20m rate=20r/s; #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 myweb80{ ip_hash; server 192.168.3.105:80; server 192.168.3.103:80;} upstream myweb8080{ ip_hash; server 192.168.3.222:10080; #server 192.168.3.103:8080; } upstream myweb10086{ ip_hash; server 192.168.3.102:10086; server 192.168.3.108:10086; } upstream myweb443{ ip_hash; server 192.168.3.105:443; server 192.168.3.103:443; } # another virtual host using mix of IP-, name-, and port-based configuration # server { listen 80; allow 218.17.158.2;allow 127.0.0.0/24;allow 192.168.0.0/16;allow 58.251.130.1;allow 183.239.167.3;allow 61.145.164.1;deny all;server_name myweb.com; location / { proxy_pass http://myweb80;proxy_set_header X-Real-IP $remote_addr;limit_req zone=allips burst=50 nodelay; } } server { listen 8080;allow 218.17.158.2;allow 127.0.0.0/24;allow 192.168.0.0/16;allow 58.251.130.1;allow 183.239.167.3;allow 61.145.164.1;deny all; location / { proxy_pass http://myweb8080;proxy_set_header X-Real-IP $remote_addr;limit_req zone=allips burst=50 nodelay; } } # HTTPS server # server { listen 10086 ssl; server_name localhost;allow 218.17.158.2;allow 127.0.0.0/24;allow 192.168.0.0/16;allow 58.251.130.1;allow 183.239.167.3;allow 61.145.164.1;#deny all; ssl_certificate ssl/1__bundle.crt; ssl_certificate_key ssl/2_.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; location / { proxy_pass https:// myweb10086; #roft html; #index index.html index.htm; } } 服务器{ listen 443 ssl; server_name localhost; ssl_certificate ssl / 1__bundle.crt; ssl_certificate_key ssl / 2_.key; #ssl_session_cache共享:SSL:1m; #ssl_session_timeout 5m; #ssl_ciphers HIGH:!aNULL:!MD5; #ssl_prefer_server_ciphers on; location / { proxy_pass https:// myweb443; #roft html; #roft html; #index index.html index.htm; } } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章