解决nginx 503 Service Temporarily Unavailable方法示例/ 张生荣

文章推薦指數: 80 %
投票人數:10人

最近网站刷新后经常出现503 Service Temporarily Unavailable错误,有时有可以,联想到最近在nginx.conf里做了单ip访问次数限制,(limit_req_zone $binary_remote_addr ... 解决nginx503ServiceTemporarilyUnavailable方法示例 最近网站刷新后经常出现503ServiceTemporarilyUnavailable错误,有时有可以,联想到最近在nginx.conf里做了单ip访问次数限制,(limit_req_zone$binary_remote_addrzone=allips:20mrate=20r/s;)把这个数量放大后在刷新发现问题解决。

(还顺便把这个改大了limit_reqzone=allipsburst=50nodelay;  )为了证实该问题,反复改动该数量测试发现问题确实在这。

这个数量设得太小有问题,通过fiddler发现web页面刷新一下,因为页面上引用的js,css,图片都算一个连接。

所以单个页面刷新下就有可能刷爆这个限制,超过这个限制就会提示503ServiceTemporarilyUnavailable。

附上nginx.conf #usernobody; worker_processes1; #worker_rlimit_nofile100000; #error_loglogs/error.log; #error_loglogs/error.lognotice; #error_loglogs/error.loginfo; #pidlogs/nginx.pid; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; ##cache## proxy_connect_timeout5; proxy_read_timeout60; proxy_send_timeout5; proxy_buffer_size16k; proxy_buffers464k; proxy_busy_buffers_size128k; proxy_temp_file_write_size128k; proxy_temp_path/home/temp_dir; proxy_cache_path/usr/local/nginx/cachelevels=1:2keys_zone=cache_one:200minactive=1dmax_size=30g; ##end## #limitperippersecondaccesstimes10 limit_req_zone$binary_remote_addrzone=allips:20mrate=20r/s; #log_formatmain'$remote_addr-$remote_user[$time_local]"$request"' #'$status$body_bytes_sent"$http_referer"' #'"$http_user_agent""$http_x_forwarded_for"'; #access_loglogs/access.logmain; sendfileon; #tcp_nopushon; #keepalive_timeout0; keepalive_timeout65; #gzipon; upstreammyweb80{ ip_hash; server192.168.3.105:80; server192.168.3.103:80; } upstreammyweb8080{ ip_hash; server192.168.3.222:10080; #server192.168.3.103:8080; } upstreammyweb10086{ ip_hash; server192.168.3.102:10086; server192.168.3.108:10086; } upstreammyweb443{ ip_hash; server192.168.3.105:443; server192.168.3.103:443; } #anothervirtualhostusingmixofIP-,name-,andport-basedconfiguration # server{ listen80; allow218.17.158.2; allow127.0.0.0/24; allow192.168.0.0/16; allow58.251.130.1; allow183.239.167.3; allow61.145.164.1; denyall; server_namemyweb.com; location/{ proxy_passhttp://myweb80; proxy_set_headerX-Real-IP$remote_addr; limit_reqzone=allipsburst=50nodelay; } } server{ listen8080; allow218.17.158.2; allow127.0.0.0/24; allow192.168.0.0/16; allow58.251.130.1; allow183.239.167.3; allow61.145.164.1; denyall; location/{ proxy_passhttp://myweb8080; proxy_set_headerX-Real-IP$remote_addr; limit_reqzone=allipsburst=50nodelay; } } #HTTPSserver # server{ listen10086ssl; server_namelocalhost; allow218.17.158.2; allow127.0.0.0/24; allow192.168.0.0/16; allow58.251.130.1; allow183.239.167.3; allow61.145.164.1; #denyall; ssl_certificatessl/1_www.myweb.com_bundle.crt; ssl_certificate_keyssl/2_www.myweb.com.key; #ssl_session_cacheshared:SSL:1m; #ssl_session_timeout5m; #ssl_ciphersHIGH:!aNULL:!MD5; #ssl_prefer_server_cipherson; location/{ proxy_passhttps://myweb10086; #rofthtml; #indexindex.htmlindex.htm; } } 服务器{ listen443ssl; server_namelocalhost; ssl_certificatessl/1_www.myweb.com_bundle.crt; ssl_certificate_keyssl/2_www.myweb.com.key; #ssl_session_cache共享:SSL:1m; #ssl_session_timeout5m; #ssl_ciphersHIGH:!aNULL:!MD5; #ssl_prefer_server_cipherson; location/{ proxy_passhttps://myweb443; #rofthtml; #rofthtml; #indexindex.htmlindex.htm; } } } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间:2019-12-03 现在越来越多的站点开始用Nginx,("enginex")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过两年半了.Igor将源代码以类BSD许可证的形式发布.在高并发连接的情况下,Nginx是Apache服务器不错的替代品.Nginx同时也可以作为7层负载均衡服务器来使用.根据测试结果,Nginx0.6 1.创建自己的404.html页面2.更改nginx.conf在http定义区域加入:fastcgi_intercept_errorson;3.更改nginx.conf(或单独网站配置文件,例如在nginx->sites-enabled下的站点配置文件)中在server区域加入:error_page404=/404.html或者error_page404=http://www.xxx.com/404.html4.更改后重启nginx,,测试nginx.co 最近服务器宕机的现象比较频繁,临下班时分,G给挂掉了,502BadGatewayNginx,不由得让我想起之前的504GatewayTime-out,两者应该有点联系,一定得弄清楚.Nginx504GatewayTime-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI.解决这两个问题其实是需要综合思考的,一般来说Nginx502BadGateway和php-fpm.conf的设置有关,而Nginx504GatewayTime-o 首先打开nginx.conf文件,在fastcgi_temp_file_write_size128k;下面添加fastcgi_intercept_errorson;注意,包括;号然后在需要定义的站点的里面添加error_page404=/404.htm;例如:复制代码代码如下:server{listen80;server_namewww.deepvps.com;indexindex.htmlindex.htmindex.php;error_page4 前言今日到公司就被其他人告知官网所有页面打开都是502.平常都是正常的怎么就突然页面就502了呢,下面就开始troubleshooting.下面来看看详细的解决过程:发现问题公司web服务器,是搭建在centossystem上的lnmp环境,首先网站502肯定是服务器端错误,首先想到是不是nginx服务挂掉了,然后执行servicenginxstatus,查看下nginx的状态:nginxisstopped,果然是nginx服务挂了.执行servicenginxstart 换了VPS之后的某一天,在Google管理员工具控制台下看到了大量的"软404"错误,查找了一些资料之后发现是自己在Nginx下配置404页面的方法不对才导致了错误的产生,在此记录一下Nginx下正确的404页面配置方法.404是一个相应代码,表示"页面无法找到"(PageNotFound),Google关于"软404"给出的说法是:复制代码代码如下:Insteadofreturninga404responsecodef 重新启动服务器,访问web服务发现无法浏览啦!登陆服务器之后进到nginx使用./nginx-sreload重新读取配置文件,发现报nginx:[error]open()"/usr/local/nginx/logs/nginx.pid"failed(2:Nosuchfileordirectory)错误,进到logs文件发现的确没有nginx.pid文件[root@localhostsbin]#./nginx-sreloadnginx:[error] 1.FastCGIworker进程数是否不够通过命令查看服务器上一共开了多少的php-cgi进程复制代码代码如下:ps-fe|grep"php"|grep-v"grep"|wc-l使用如下命令查看已经有多少个php-cgi进程用来处理tcp请求复制代码代码如下:netstat-anop|grep"php"|grep-v"grep"|wc-l接近配置文件中设置的数 max_children=40,每个children平均占用20M-30M内存,children越多,可以同时接受的并发数量越多,一般children的值是网站最高并发数+浮动值,这值再×内存占用,就是你需要用到的内存.max_requests=N是指当每个children接受了N次请求以后,就会把自己杀死,然后重新建立一个children.PV/max_children=每一个children接受的request次数[默认预设浏览一个只调用一次PHP程序,或许异步调用呢?接 今天在一个新的环境上安装nginx,结果访问的都是403通常显示403我立马都会想到路径配置不对,但我仔细看了一下,目录路径没问题:nginx.conf:复制代码代码如下:server{       listen      80;       server_name localhost;        #charsetkoi8-r;        #access_log logs/host.access.log main;        locat 查看/var/log/nginx/error.log日志显示:xxx403forbidden(13:Permissiondenied)错误.我勒个去~引起nginx403forbidden通常是三种情况:一是缺少索引文件,二是权限问题,三是SELinux状态.一.缺少index.html或者index.PHP文件,就是配置文件中indexindex.htmlindex.htm这行中的指定的文件server{listen80;server_namelocalhos 常见的,引起nginx403forbidden有二种原因,一是缺少索引文件,二权限问题.1.缺少index.html或者index.php文件复制代码代码如下:server{  listen      80;  server_name localhost;  index index.phpindex.html;  root /var/www;}如果在/var/www下面没有index.php,index.html的时候,直接访问域名,找不到文件,会报40 日志记录中HTTP状态码出现499错误有多种情况,我遇到的一种情况是nginx反代到一个永远打不开的后端,就这样了,日志状态记录是499.发送字节数是0.老是有用户反映网站系统时好时坏,因为线上的产品很长时间没有修改,所以前端程序的问题基本上可以排除,于是就想着是Get方式调用的接口不稳定,问了相关人员,说没有问题,为了拿到确切证据,于是我问相关人员要了nginx服务器的日志文件(awstats日志),分析后发现日志中很多错误码为499的错误,约占整个日志文件的1%,而它只占全部报错的70%左 本文讲述了PHP(FastCGI)在Nginx的alias下出现404错误的解决方法.分享给大家供大家参考,具体如下:在Nginx的官方wiki中如下描述Thealiasdirectivecannotbeusedinsidearegex-specifiedlocation.Ifyouneedtodothisyoumustuseacombinationofrewriteandroot.在实际使用中alias下面的php返回404,而html确可 本文较为详细的分析了php提示Failedtowritesessiondata错误的解决方法.分享给大家供大家参考.具体方法如下:一.问题:提示信息:Warning:Failedtowritesessiondata(files).Pleaseverifythatthecurrentsettingofsession.save_pathiscorrect()inUnknownonline0二.解决方法:代码如下:复制代码代码如下:ses Nginx的特点是处理静态很给力,Apache的特点是处理动态很稳定,两者结合起来便是LNMPA,nginx处理前端,apache处理后端,这样处理静态会很快,处理动态会很稳定.当我以为安装完成以后便万事大吉,不料更新网站的时候却出现504Gatewaytime-out;起初还以为这是偶然,多次尝试后依然出现这样的情况,因此才决定查找解决方法.LNMP面对504Gatewaytime-out因为504Gatewaytime-out是Nginx的专属错误,因此起初我以为是ngin 在使用ORACLE的过程中,会出现各种各样的问题,各种各样的错误,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.不过还好已经解决了这个问题,现在分享一下,解决方案;出现ORA-12899,是字符集引起的,中文在UTF-8中占3个字节,ZHS16GBK中占2个字节,而源dmp文件字符集是ZHS16GBK库里倒出来的数据,现在要导入到目标字符集为UTF-8的库里,所以会出现ORA-12899其实只要修改一下ORACLE的字符集就可以很好的解决这个问题;但 一.报错:「Can'tswapPDOinstancewhilewithintransaction」通过查询Laravel源代码,可以确认异常是在setPdo方法中抛出的:transactions>=1){thrownewRuntimeException("Can'tswapPDOinstancewhilewithintransact ©2022张生荣|info#zhangshengrong.com|37q.0.106s.



請為這篇文章評分?