Nginx常见错误与解决方法
- 格式:doc
- 大小:83.00 KB
- 文档页数:8
Nginx启动常见错误及解决⽅法重新启动服务器,访问web服务发现⽆法浏览啦!登陆服务器之后进到nginx使⽤./nginx -s reload重新读取配置⽂件,发现报nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)错误,进到logs⽂件发现的确没有nginx.pid⽂件 [root@localhost sbin]# ./nginx -s reload nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory) 解决⽅法:复制代码代码如下:[root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 使⽤nginx -c的参数指定nginx.conf⽂件的位置 [root@localhost nginx]# cd logs/ [root@localhost logs]# ll 总⽤量 12 -rw-r--r-- 1 root root 1246 12⽉ 9 18:10 access.log -rw-r--r-- 1 root root 516 12⽉ 10 15:39 error.log -rw-r--r-- 1 root root 5 12⽉ 10 15:38 nginx.pid 看nginx.pid⽂件已经有了。
以上所述是⼩编给⼤家介绍的Nginx启动常见错误及解决⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
在此也⾮常感谢⼤家对⽹站的⽀持!。
纽斯达科技Nginx常见错误与解决方法纽斯达科技2014-10-25文档状态目的:在Nginx服务器出现故障时,能快速定位并解决相关错误。
:本文档仅供部使用,请勿外传概述:Nginx常见错误与问题之解决方法技术指南。
安装环境:系统环境:redhat enterprise 6.5 64bit1、Nginx 常见启动错误有的时候初次安装nginx的时候会报这样的错误sbin/nginx -c conf/nginx.conf报错容:sbin/nginx: error while loading shared libraries: libpcre.so.1:cannot open shared object file: No such file or directory启动时如果报异常error while loading shared libraries: libpcre.so.1: cannot openshared object file: No such file or directory 这说明我们的环境还不是和启动需要小小的配置一下解决方法(直接运行):32位系统[rootsever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64位系统[rootsever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64然后执行ps -ef | grep nginx 查看nginx进程确认是否真的已经启动了,在进程列表里会有最起码两个,worker(nginx工作进程)和master(nginx主进程)root 4349 1 0 02:24 ? 00:00:00 nginx: master process sbin/nginx -cconf/nginx.confnginx 4350 4349 0 02:24 ? 00:00:00 nginx: worker processroot 4356 28335 0 02:30 pts/1 00:00:00 grep nginxNGINX 就OK了2、400 bad request错误的原因和解决办法配置nginx.conf相关设置如下.client_header_buffer_size 16k;large_client_header_buffers 4 64k;根据具体情况调整,一般适当调整值就可以。
Nginx502BadGateway错误常见的4种原因和解决⽅法1.FastCGI worker进程数是否不够通过命令查看服务器上⼀共开了多少的 php-cgi 进程复制代码代码如下:ps -fe |grep "php" | grep -v "grep" | wc -l使⽤如下命令查看已经有多少个php-cgi进程⽤来处理tcp请求复制代码代码如下:netstat -anop | grep "php" | grep -v "grep" | wc -l接近配置⽂件中设置的数值,表明worker进程数设置太少2.FastCGI执⾏时间过长根据实际情况调⾼以下参数值复制代码代码如下:fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;3.FastCGI Buffer不够nginx和apache⼀样,有前端缓冲限制,可以调整缓冲参数复制代码代码如下:fastcgi_buffer_size 32k;fastcgi_buffers 8 32k;这个⼀般你能在⽇志中看到:upstream sent too big header while reading response header from upstream意思就是反馈回来的头部信息太⼤,好多是Firefox浏览时才出现,是它的插件引起的。
4.Proxy Buffer不够如果你⽤了Proxying,试试调整复制代码代码如下:proxy_buffer_size 16k;proxy_buffers 4 16k;。
nginx502错误原因解决方法nginx502错误是指在使用nginx作为反向代理服务器时,后端服务器返回了一个502错误。
这种错误通常出现在nginx无法从后端服务器获取有效响应时。
那么,究竟是什么原因导致了nginx502错误呢?接下来,我们将详细介绍nginx502错误的常见原因,并提供解决方法。
1. 后端服务器故障。
后端服务器故障是导致nginx502错误的常见原因之一。
当后端服务器因为各种原因无法正常响应请求时,nginx就会收到502错误。
这种情况下,我们需要检查后端服务器的运行状态,确保服务器正常运行,并且能够正常响应请求。
解决方法,检查后端服务器的日志,查找可能的故障原因,并及时修复。
如果是服务器负载过高导致的故障,可以考虑增加服务器资源,或者优化后端服务程序。
2. 过载。
当nginx服务器本身负载过高时,也会导致502错误。
这种情况通常发生在nginx服务器处理大量并发请求时,或者配置不当导致资源占用过高。
解决方法,优化nginx服务器配置,增加服务器资源,或者考虑使用负载均衡来分担服务器负载。
3. 后端服务超时。
后端服务响应时间过长,超过了nginx设置的超时时间,也会导致502错误。
这种情况通常发生在后端服务处理复杂请求时,或者网络延迟较大时。
解决方法,增加后端服务的处理能力,优化服务程序,或者调整nginx的超时设置。
4. 网络问题。
网络问题也是导致nginx502错误的一个常见原因。
当nginx无法与后端服务器建立连接,或者连接断开时,就会返回502错误。
解决方法,检查网络连接,确保网络畅通。
如果是网络问题导致的502错误,需要及时排查并解决网络故障。
5. 配置错误。
配置错误也可能导致nginx502错误。
当nginx配置不当时,可能会导致无法正确转发请求到后端服务器,从而返回502错误。
解决方法,检查nginx配置文件,确保配置正确。
可以使用nginx的配置检查工具来检查配置文件的语法错误,及时修复配置问题。
Nginx常见问题解决1、nginx 或者tomcat 下 X-Content-Type-Options、X-XSS-Protection、Content-Security-Pol安全配置add_header X-Frame-Options "SAMEORIGIN";add_header X-XSS-Protection "1; mode=block";add_header X-Content-Type-Options "nosniff";2、nginx: [emerg] unknown "connection_upgrade" variable解决与思考http {map $http_upgrade $connection_upgrade {default upgrade;'' close;}server {location / {#…proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;}}}3、Nginx: Connection reset by peer 错误定位4、nginx设置反向代理,获取真实客户端ipupstream这个模块提供⼀个简单⽅法来实现在轮询和客户端IP之间的后端服务器负荷平衡。
upstream {server 127.0.0.1:8080;server 127.0.0.1:80;server 127.0.0.1:8000;}server {listen 80;server_name ;location / {proxy_pass ;proxy_set_header Host $host;#保留代理之前的hostproxy_set_header X-Real-IP $remote_addr;#保留代理之前的真实客户端ipproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;#在多级代理的情况下,记录每次代理之前的客户端真实ipproxy_redirect default;#指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值}}5、302location = /iot {return 302 /iot/;}location /iot/ {root html;index index.html index.htm;proxy_pass http://192.168.131.63:30104/;proxy_connect_timeout 300s;proxy_send_timeout 300s;proxy_read_timeout 300s;proxy_buffer_size 64k;proxy_buffers 32 32k;proxy_busy_buffers_size 128k;proxy_set_header X-Forwarded-Proto https;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}6、使⽤nginx 代理,后端通过request获取header⾃定义头信息为null问题使⽤nginx 代理,后端通过request ⽅式获取⾃定义header头信息⼀直获取不到,后来百度到nginx有个坑,⾃定义header参数名称不能带下横线,默认被过滤了。
Nginx中报错:Permissiondenied与Connectionrefused的解决
本⽂主要记录⼀下各种环境中 nginx 的错误和解决办法,下⾯话不多说了,来看看详细的介绍吧。
⼀、13: Permission denied
Nginx错误:
2017/04/19 14:46:46 [crit] 4172#0: *671 open() “/data/vhosts//test/” failed (13: Permission denied), client: 192.168.35.54, server: , request: “GET / HTTP/1.1”, host: “”
解决⽅法:
经查权限问题导致,⽹站⽬录是 root ⽤户组,⽽ nginx 是运⾏的 nobody ⽤户进程,修改⽹站⽬录为 nobody ⽤户组。
⼆、111: Connection refused
Nginx错误:
2017/04/19 14:48:02 [error] 4172#0: *672 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.35.54, server: , request: “GET / HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host: “”出现的原因:
1.php-fpm 服务没有开启
2.权限问题,查看⽬录⽤户组
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。
上海纽斯达科技Nginx常见错误与解决方法上海纽斯达科技有限公司2014-10-25文档状态目的:在Nginx服务器出现故障时,能快速定位并解决相关错误。
保密:本文档仅供内部使用,请勿外传概述:Nginx常见错误与问题之解决方法技术指南。
安装环境:系统环境:redhat enterprise 6.5 64bit1、Nginx 常见启动错误有的时候初次安装nginx的时候会报这样的错误sbin/nginx -c conf/nginx.conf报错内容:sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory启动时如果报异常error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 这说明我们的环境还不是和启动需要小小的配置一下解决方法(直接运行):32位系统 [root@sever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64位系统 [root@sever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64然后执行ps -ef | grep nginx 查看nginx进程确认是否真的已经启动了,在进程列表里会有最起码两个, worker(nginx工作进程)和master(nginx主进程)root 4349 1 0 02:24 ? 00:00:00 nginx: master process sbin/nginx -cconf/nginx.confnginx 4350 4349 0 02:24 ? 00:00:00 nginx: worker processroot 4356 28335 0 02:30 pts/1 00:00:00 grep nginxNGINX 就 OK了2、400 bad request错误的原因和解决办法配置nginx.conf相关设置如下.client_header_buffer_size 16k;large_client_header_buffers 4 64k;根据具体情况调整,一般适当调整值就可以。
解决Nginx配置未生效没用没效果原因竟是Windows版本脏的重启在Windows操作系统中,一些用户可能会遇到Nginx配置未生效的问题。
即使配置文件正确且重新加载了Nginx,但更改似乎没有生效。
这种情况的一个可能原因是Windows版本的“脏”重启。
当Nginx在Windows上运行时,它常常使用了一些操作系统和硬件资源。
在一些情况下,当我们修改配置文件时,操作系统未能完全释放这些资源,导致重新加载的配置文件未能应用。
为了解决这个问题,我们可以采取以下步骤:1. 关闭Nginx服务:在命令提示符窗口中,输入`nginx -s stop`来停止Nginx服务。
2. 结束所有Nginx关联的进程:打开任务管理器,查找并结束与Nginx相关的进程。
通常,这些进程会以“nginx.exe”或“nginx-1.**.exe”等名称显示。
3.清理操作系统和硬件资源:通过运行以下命令来释放操作系统和硬件资源:4. 清理Nginx的临时文件和缓存:在Nginx安装目录中找到并删除以下文件夹:- conf文件夹中的“fastcgi_temp”和“proxy_temp”文件夹- logs文件夹中的所有日志文件- temp文件夹中的所有文件5. 重新启动Nginx服务:在命令提示符窗口中,输入`nginx`以重新启动Nginx服务。
确保在输入命令之前所在的目录是Nginx的安装目录。
以上步骤将清除之前可能存在的旧配置和资源,确保Nginx能够重新加载并应用新的配置。
重新启动后,可以通过访问相关的网站或应用程序来验证配置是否生效。
此外,还有一些常见的错误可能导致Nginx配置未生效,包括:- 配置文件中的语法错误:检查配置文件的语法和拼写错误。
使用命令`nginx -t`可以检查配置文件是否具有语法错误。
- 配置文件路径错误:确保Nginx在读取配置文件时使用了正确的路径。
在Windows上,通常可以在“nginx.conf”文件中找到配置文件的路径。
nginx502错误原因解决方法当我们在使用nginx作为反向代理服务器时,有时候会遇到502错误。
这种错误通常是由于后端服务器无法正常响应请求导致的。
本文将针对nginx502错误的原因进行分析,并提供相应的解决方法。
1. 后端服务器超时。
后端服务器在处理请求时,如果耗时过长,超出了nginx设置的超时时间,就会导致502错误。
解决方法是调整nginx的超时设置,可以通过修改proxy_connect_timeout和proxy_read_timeout参数来延长超时时间。
2. 后端服务器故障。
后端服务器可能由于各种原因出现故障,无法正常响应请求,这也会导致502错误。
解决方法是检查后端服务器的运行状态,确保服务器正常运行,并且没有出现过载或者其他故障情况。
3. 后端服务器连接数过载。
如果后端服务器的连接数超过了其承载能力,也会导致502错误。
解决方法是调整nginx的连接数限制,可以通过修改proxy_max_temp_file_size和proxy_busy_buffers_size参数来提高连接数限制。
4. 后端服务器响应错误。
有时候后端服务器会因为程序错误或者配置错误导致无法正常响应请求,这也会引起502错误。
解决方法是检查后端服务器的程序和配置,确保其能够正常工作,并且没有出现错误。
5. 网络问题。
502错误有时候也可能是由于网络问题导致的,比如网络延迟、丢包等。
解决方法是检查网络连接,确保网络畅通,并且没有出现异常情况。
综上所述,nginx502错误通常是由于后端服务器无法正常响应请求导致的。
解决这个问题的方法主要包括调整nginx的超时设置、检查后端服务器运行状态、调整连接数限制、检查后端服务器程序和配置、以及检查网络连接。
通过以上方法,我们可以有效地解决nginx502错误,确保网站能够正常运行。
nginx400错误的解决方法Nginx是一个强大的Web服务器,它可以支持大量的Web站点和终端用户的访问。
由于许多因素的影响,Nginx可能出现“400错误”。
在这种情况下,HTTP请求将被拒绝,终端用户经常看到一条“400错误”消息。
本文将着重讨论Nginx的“400错误”的可能原因以及如何解决这个问题的解决方案。
首先要搞清楚Nginx 400错误的出现原因。
一般来说,主要有以下几种原因:第一,由于客户端请求中有语法错误,导致服务器无法解析请求。
这种情况下,服务器将返回Nginx 400错误。
第二,如果服务器设置了限制,可能会导致Nginx 400错误出现。
例如,服务器可以设置允许的最大HTTP请求大小,如果请求的体积超出这一设定,服务器就会拒绝该HTTP请求,从而导致Nginx 400错误出现。
第三,由于服务器没有正确的配置,Nginx 400错误也会出现。
接下来,让我们讨论如何解决Nginx 400错误。
首先,可以采用“在客户端中检查请求语法”的方式来解决Nginx 400错误。
这是因为,如果客户端传递给服务器的请求有语法错误,服务器将无法正确处理该请求,所以,在客户端检查请求语法的做法是有效的。
其次,可以检查服务器的设置是否造成Nginx 400错误的出现。
例如,可以检查服务器是否设置了允许的最大HTTP请求体积,如果设置了,可以适当调大该值,以免遇到Nginx 400错误。
最后,可以检查服务器的配置是否存在问题。
如果配置存在问题,则可以修改配置,以解决Nginx 400错误。
在这里,我们介绍了Nginx 400错误的出现原因和解决方法。
通过熟悉这些原因和解决方法,可以更好地解决Nginx的400错误问题。
如何解决 Nginx 502 错误问题Nginx 是一款高性能的 Web 服务器软件,它可以用来代理前端Web 服务器,也可以进行负载均衡、反向代理等操作。
但是,有时候在使用 Nginx 的过程中,我们会遇到一些问题,其中 502 错误就是比较常见的一个。
下面,我们就来探讨一下如何解决 Nginx 502 错误问题。
一、什么是 Nginx 502 错误首先,我们需要了解一下 Nginx 502 错误的含义。
502 错误是指Nginx 作为反向代理服务器时,在代理请求时出现故障或超时,从而导致上游服务器无法正常响应请求。
这样,Nginx 无法将正确的响应返回给客户端,从而产生了 502 错误。
二、如何排查 Nginx 502 错误在遇到 Nginx 502 错误时,我们需要先进行排查。
具体可以从以下几个方面入手:1.检查上游服务器是否正常工作Nginx 作为反向代理服务器,其主要作用是将客户端请求转发给上游服务器进行处理。
因此,当遇到 502 错误时,我们需要先检查一下上游服务器是否正常工作。
可以通过访问上游服务器的IP 地址或域名,来确定其是否能够正常响应请求。
如果上游服务器无法正常工作,则需要先解决上游服务器的问题,才能消除Nginx 502 错误。
2.检查 Nginx 配置文件是否正确Nginx 的配置文件中包含了一些参数和选项,这些参数和选项决定了 Nginx 服务器的行为。
因此,在遇到 Nginx 502 错误时,我们需要先检查一下 Nginx 配置文件是否正确。
可以通过检查配置文件语法是否正确,以及配置文件中是否包含了正确的服务器、监听端口、反向代理等参数来确定配置文件是否正确。
3.检查 Nginx 日志文件是否有异常信息Nginx 的日志文件可以记录下服务器在运行过程中的一些信息,包括请求响应状态码、请求时间、错误信息等。
因此,在遇到Nginx 502 错误时,我们需要查看 Nginx 的日志文件,以了解错误信息。
Nginx服务器出现500错误的原因及解决方法Nginx 500错误(Internal Server Error),主要指的是服务器内部错误,即服务器遇到意外情况,无法完成请求导致返回出错。
那么出现Nginx 500错误有哪些原因导致的呢?该如何解决?下面一起来了解下。
1、磁盘空间不足使用df -k 查看硬盘空间是否满了。
如果是由于磁盘空间不足导致的,则可以清理硬盘空间解决500错误。
Nginx如果开启了access log,在不需要的情况下,最好关闭access log。
因为access log会占用大量硬盘空间。
2、Nginx配置文件错误这里不是指语法错误,Nginx配置文件有语法错误,启动的时候就会提示。
当配置rewrite的时候,有些规则处理不当会出现500错误,请仔细检查您的rewrite规则。
如果配置文件里有些变量设置不当,也会出现500错误,比如引用了一个没有值的变量。
3、并发数太多如果上面两种情况都不存在,那么500错误可能是由于模拟的并发数太多了,需要调整一下nginx.conf的并发设置数。
Nginx 500错误解决方法:①查看nginx error log ,查看php error lognginx 错误日志error.log 默认位置:/usr/local/nginx/logs②如果是too many open files,修改nginx的worker_rlimit_nofile参数,使用ulimit查看系统打开文件限制,修改/etc/security/limits.conf③如果是脚本的问题,则需要修复脚本错误,优化代码。
④以上各种优化都做好了后,要是出现too many open files,那就要考虑做Nginx负载均衡,把流量分散到不同服务器上去了。
1 打开/etc/security/limits.conf文件,加上两句代码如下:* soft nofile 65535* hard nofile 655352 打开/etc/nginx/nginx.conf在worker_processes的下面增加一行代码如下:worker_rlimit_nofile 65535;3 重新启动nginx,重新载入设置代码如下:kill -9 `ps -ef | grep php | grep -v grep | awk ‘{print $2}’`/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 100 -u www-data -f /usr/bin/php-cgikillall -HUP nginx重启后再看nginx的错误日志,也没有发现500报错的情况了。
nginx“403Forbidden”错误的原因及解决办法Nginx 的 403 Forbidden errors 表⽰你在请求⼀个资源⽂件但是nginx不允许你查看。
403 Forbidden 只是⼀个HTTP状态码,像404,200⼀样不是技术上的错误。
哪些场景需要返回403状态码的场景?1.⽹站禁⽌特定的⽤户访问所有内容,例:⽹站屏蔽某个ip访问。
2.访问禁⽌⽬录浏览的⽬录,例:设置autoindex off后访问⽬录。
3.⽤户访问只能被内⽹访问的⽂件。
以上⼏种常见的需要返回 403 Forbidden 的场景。
由于服务器端的错误配置导致在不希望nginx返回403时返回403 Forbidden。
1.权限配置不正确这个是nginx出现403 forbidden最常见的原因。
为了保证⽂件能正确执⾏,nginx既需要⽂件的读权限,⼜需要⽂件所有⽗⽬录的可执⾏权限。
例如,当访问/usr/local/nginx/html/image.jpg时,nginx既需要image.jpg⽂件的可读权限,也需要/,/usr,/usr/local,/usr/local/nginx,/usr/local/nginx/html的可以执⾏权限。
解决办法:设置所有⽗⽬录为755权限,设置⽂件为644权限可以避免权限不正确。
2.⽬录索引设置错误(index指令配置)⽹站根⽬录不包含index指令设置的⽂件。
例如,运⾏PHP的⽹站,通常像这样配置indexindex index.html index.htm index.php;当访问该⽹站的时,nginx 会按照 index.html,index.htm ,index.php 的先后顺序在根⽬录中查找⽂件。
如果这三个⽂件都不存在,那么nginx就会返回403 Forbidden。
如果index中不定义 index.php ,nginx直接返回403 Forbidden⽽不会去检查index.php是否存在。
Nginx503错误总结nginx 503错误(Service Temporarily Unavailable 服务暂时不可⽤): 503是⼀种HTTP状态码,由于临时的服务器维护或者过载,服务器当前⽆法处理请求。
这个状况是临时的,并且将在⼀段时间以后恢复。
⼀般来说,出现503错误多半是因为⽹站访问量⼤,造成了流量超限或者并发数⼤引起的资源超限出现的错误。
解决的⽅法⼀个是升级空间到更佳配置,要么就是检查⽹站系统程序,使之更佳优化。
解决⽅法:1、如果你⾃认为⾃⼰的⽹站程序没有问题,那么就应该是空间有过多的限制造成了系统资源不⾜引起的错误,可以考虑换空间了。
2、如果空间没有问题,那么就要仔细检查⽹站程序是否有死循环或者内存泄露等问题。
3、让Service Temporarily Unavailable⾃动重定义到503页⾯如果出现了Service Temporarily Unavailable问题,却不想直接显⽰错误页⾯,那么可以指定这个错误页⾯。
Apache下可以使⽤如下⽅法:编辑/usr/prima/apache_ssl/conf/httpd.conf找到<IfModule mod_throttle.c>,在块中加⼊ThrottleMaxDelay 0重起apache在httpd.conf中加⼊:ErrorDocument 503 /busy.html这样⼀旦再出现Service Temporarily Unavailable错误,就会直接指向到busy.html页⾯了!补充1其实⼀般是因为web服务器负载过⼤造成,检验增加带宽或使⽤cdn加速等临时解决下,⼀般iis或apache的连接数要根据⾃⼰的访问量增加,⼀般5000-10000就差不多了补充2问题Service Temporarily Unavailable 解决⽅案1 这是因为⽤户站点使⽤的带宽超过了设定的最⾼限额引起的。
Nginx常见错误码解决⽅案302错误现象:nginx在使⽤⾮80端⼝做反向代理时,浏览器访问发现返回302错误解决⽅案://如果是 proxy_set_header Host $host;//那么改成proxy_set_header Host $host:$server_post;//没有配置则加上proxy_set_header Host $host:$server_post;//以下为添加位置location ^/api {proxy_set_header Host $host:$server_post;proxy_pass http://127.0.0.1;}400错误nginx400错误是由于request header过⼤,通常是由于cookie中写⼊了较长的字符串所引起的。
若cookie太⼤,可能还需要调整large_client_header_buffers(默认4k)403错误413错误413 Request Entity Too Large上传⽂件过程中容易出现这个问题,传递的某些数据⼤⼩超过了nginx的配置解决⽅案:hhtp{client_max_body_size 8M; //改变这个值client_body_buffer_size 128k; //缓冲区⼤⼩}如果后端是php 修改php.inipost_max_size = 8Mupload_max_filesize = 6M重启php服务如果后端是SpringbootSpring Boot 1.3.xmultipart.maxFileSize=8Mmultipart.maxRequestSize=8MSpring Boot 1.4.x and 1.5.xspring.http.multipart.maxFileSize=8Mspring.http.multipart.maxRequestSize=8MSpring Boot 2.xspring.servlet.multipart.max-file-size=8Mspring.servlet.multipart.max-request-size=8M414错误414 Request-URI Too Large 请求的url太长了解决⽅案:http{client_header_buffer_size 512k;large_client_header_buffers 4 512k;}499错误这是nginx定义的⼀个状态码,⽤于表⽰这样的错误:服务器返回http头之前,客户端就提前关闭了http连接问题的核⼼就是要排查为什么服务端处理时间过长可能问题:1.后台python程序处理请求时间过长2.mysql慢查询通过查看监控:1.cpu和内存的使⽤,都在正常范围2.后台程序访问正常3.MySQL没有慢查询502错误502 Bad Gateway:作为⽹关或者代理⼯作的服务器尝试执⾏请求时,从上游服务器接收到⽆效的响应504错误504 Gateway Time-out:作为⽹关或者代理⼯作的服务器尝试执⾏请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。
纽斯达科技Nginx常见错误与解决方法纽斯达科技2014-10-25文档状态目的:在Nginx服务器出现故障时,能快速定位并解决相关错误。
:本文档仅供部使用,请勿外传概述:Nginx常见错误与问题之解决方法技术指南。
安装环境:系统环境:redhat enterprise 6.5 64bit1、Nginx 常见启动错误有的时候初次安装nginx的时候会报这样的错误sbin/nginx -c conf/nginx.conf报错容:sbin/nginx: error while loading shared libraries: libpcre.so.1:cannot open shared object file: No such file or directory启动时如果报异常error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 这说明我们的环境还不是和启动需要小小的配置一下解决方法(直接运行):32位系统 [rootsever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64位系统 [rootsever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64然后执行ps -ef | grep nginx 查看nginx进程确认是否真的已经启动了,在进程列表里会有最起码两个, worker(nginx工作进程)和master(nginx主进程)root 4349 1 0 02:24 ? 00:00:00 nginx: master process sbin/nginx -cconf/nginx.confnginx 4350 4349 0 02:24 ? 00:00:00 nginx: worker processroot 4356 28335 0 02:30 pts/1 00:00:00 grep nginxNGINX 就 OK了2、400 bad request错误的原因和解决办法配置nginx.conf相关设置如下.client_header_buffer_size 16k;large_client_header_buffers 4 64k;根据具体情况调整,一般适当调整值就可以。
上海纽斯达科技Nginx常见错误与解决方法上海纽斯达科技有限公司2014-10-25文档状态目的:在Nginx服务器出现故障时,能快速定位并解决相关错误。
保密:本文档仅供内部使用,请勿外传概述:Nginx常见错误与问题之解决方法技术指南。
安装环境:系统环境:redhat enterprise 6.5 64bit1、Nginx 常见启动错误有的时候初次安装nginx的时候会报这样的错误sbin/nginx -c conf/nginx.conf报错内容:sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory启动时如果报异常error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 这说明我们的环境还不是和启动需要小小的配置一下解决方法(直接运行):32位系统 [root@sever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64位系统 [root@sever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64然后执行ps -ef | grep nginx 查看nginx进程确认是否真的已经启动了,在进程列表里会有最起码两个, worker(nginx工作进程)和master(nginx主进程)root 4349 1 0 02:24 ? 00:00:00 nginx: master process sbin/nginx -cconf/nginx.confnginx 4350 4349 0 02:24 ? 00:00:00 nginx: worker processroot 4356 28335 0 02:30 pts/1 00:00:00 grep nginxNGINX 就 OK了2、400 bad request错误的原因和解决办法配置nginx.conf相关设置如下.client_header_buffer_size 16k;large_client_header_buffers 4 64k;根据具体情况调整,一般适当调整值就可以。
3、Nginx 502 Bad Gateway错误在php.ini和php-fpm.conf中分别有这样两个配置项:max_execution_time和request_terminate_timeout。
这两项都是用来配置一个PHP脚本的最大执行时间的。
当超过这个时间时,PHP-FPM不只会终止脚本的执行,还会终止执行脚本的Worker进程。
所以Nginx会发现与自己通信的连接断掉了,就会返回给客户端502错误。
以PHP-FPM的request_terminate_timeout=30秒时为例,报502 Bad Gateway错误的具体信息如下:1)Nginx错误访问日志:2013/09/19 01:09:00 [error] 27600#0: *78887 recv() failed (104: Connection reset by peer) while reading response header from upstream,client: 192.168.1.101, server: , request: "POST /index.phpHTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-fcgi.sock:",host: "", referrer: "/index.php"2)PHP-FPM报错日志:WARNING: child 25708 exited on signal 15 (SIGTERM) after 21008.883410 seconds from start所以只需将这两项的值调大一些就可以让PHP脚本不会因为执行时间长而被终止了。
request_terminate_timeout可以覆盖max_execution_time,所以如果不想改全局的php.ini,那只改PHP-FPM的配置就可以了。
此外要注意的是Nginx的upstream模块中的max_fail和fail_timeout两项。
有时Nginx与上游服务器(如Tomcat、FastCGI)的通信只是偶然断掉了,但max_fail如果设置的比较小的话,那么在接下来的fail_timeout时间内,Nginx都会认为上游服务器挂掉了,都会返回502错误。
所以可以将max_fail调大一些,将fail_timeout调小一些。
4、Nginx出现的413 Request Entity Too Large错误这个错误一般在上传文件的时候会出现,编辑Nginx主配置文件Nginx.conf,找到http{}段,添加client_max_body_size 10m; //设置多大根据自己的需求作调整.如果运行php的话这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。
post_max_size = 10Mupload_max_filesize = 2M5、解决504 Gateway Time-out(nginx)遇到这个问题是在升级discuz论坛的时候遇到的一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out,现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K。
默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点在nginx.conf里, 加入: fastcgi_buffers 8 128k这表示设置fastcgi缓冲区为8×128当然如果您在进行某一项即时的操作, 可能需要nginx的超时参数调大点,例如设置成90秒:send_timeout 90;只是调整了这两个参数, 结果就是没有再显示那个超时, 效果不错Nginx中关于与上游服务器通信超时时间的配置factcgi_connect/read/send_timeout。
以Nginx超时时间为90秒,PHP-FPM超时时间为300秒为例,报504 Gateway Timeout错误时的Nginx错误访问日志如下:2013/09/19 00:55:51 [error] 27600#0: *78877 upstream timed out (110: Connection timed out) while reading response header from upstream,client: 192.168.1.101, server: , request: "POST /index.php HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-fcgi.sock:",host: "", referrer: "/index.php"调高这三项的值(主要是read和send两项,默认不配置的话Nginx会将超时时间设为60秒)之后,504错误也解决了。
而且这三项配置可以配置在http、server级别,也可以配置在location级别。
担心影响其他应用的话,就配置在自己应用的location中吧。
要注意的是factcgi_connect/read/send_timeout是对FastCGI生效的,而proxy_connect/read/send_timeout是对proxy_pass生效的。
配置举例:location ~ \.php$ {root /home/cda i/;include fastcgi_para ms;fastcgi_connect_timeout 180;fastcgi_read_timeout 600;fastcgi_send_timeout 600;fastcgi_pass unix:/dev/shm/php -fcgi.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME/home/cdai/$fastcgi_script_name;}6、如何使用Nginx Proxy朋友一台服务器运行tomcat 为8080端口,IP:192.168.1.2:8080,另一台机器IP:192.168.1.8. 朋友想通过访问http://192.168.1.8即可访问tomcat服务.配置如下:在192.168.1.8的nginx.conf上配置如下:server {listen 80;server_name location / {proxy_pass http://192.168.1.2:8080;include /usr/local/nginx/conf/proxy.conf;}}7. 安装完成Nginx后无法站外访问?刚安装好nginx一个常见的问题是无法站外访问,本机wget、telnet都正常。
而服务器之外,不管是局域网的其它主机还是互联网的主机都无法访问站点。
如果用telnet的话,提示:正在连接到192.168.0.xxx...不能打开到主机的连接,在端口 80: 连接失败如果用wget命令的话,提示:Connecting to 192.168.0.100:80... failed: No route to host.如果是以上的故障现象,很可能是被CentOS的防火墙把80端口拦住了,尝试执行以下命令,打开80端口:iptables -I INPUT -p tcp --dport 80 -j ACCEPT然后用:/etc/init.d/iptables status查看当前的防火墙规则,如果发现有这样一条:ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt: 80就说明防火墙规则已经添加成功了,再在站外访问就正常了。