1、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 /lib

64位系统

[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 -c
conf/nginx.conf
nginx 4350 4349 0 02:24 ? 00:00:00 nginx: worker process
root 4356 28335 0 02:30 pts/1 00:00:00 grep nginx

NGINX 就 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: test.com, request: "POST /index.php HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-fcgi.sock:", host: "test.com", referrer: "http://test.com/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 = 10M
upload_max_filesize = 2M

5、解决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: test.com, request: "POST /index.php HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-fcgi.sock:", host: "test.com", referrer: "http://test.com/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/cdai/test.com;   include fastcgi_params;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/test.com$fastcgi_script_name;}

6、如何使用Nginx Proxy

服务器A运行tomcat为8080端口,IP:192.168.1.2:8080;

服务器B IP:192.168.1.8。现在想通过访问http://192.168.1.8即可访问tomcat服务。

在192.168.1.8的nginx.conf上配置如下:

server {
listen 80;
server_name java.linuxtone.org
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

就说明防火墙规则已经添加成功了,再在站外访问就正常了。

8、如何关闭Nginx的LOG

access_log /dev/null
error_log /dev/null

此外,错误日志主要记录客户端访问nginx出错时的日志,通过错误日志,能快速定位客户端访问异常!

错误信息

错误说明

"upstream prematurely(过早的) closed connection"

请求uri的时候出现的异常,是由于upstream还未返回应答给用户时用户断掉连接造成的,对系统没有影响,可以忽略

"recv() failed (104: Connection reset by peer)"

(1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;

(2)客户关掉了浏览器,而服务器还在给客户端发送数据;

(3)浏览器端按了Stop

"(111: Connection refused) while connecting to upstream"

用户在连接时,若遇到后端upstream挂掉或者不通,会收到该错误

"(111: Connection refused) while reading response header from upstream"

用户在连接成功后读取数据时,若遇到后端upstream挂掉或者不通,会收到该错误

"(111: Connection refused) while sending request to upstream"

Nginx和upstream连接成功后发送数据时,若遇到后端upstream挂掉或者不通,会收到该错误

"(110: Connection timed out) while connecting to upstream"

nginx连接后面的upstream时超时

"(110: Connection timed out) while reading upstream"

nginx读取来自upstream的响应时超时

"(110: Connection timed out) while reading response header from upstream"

nginx读取来自upstream的响应头时超时

"(110: Connection timed out) while reading upstream"

nginx读取来自upstream的响应时超时

"(104: Connection reset by peer) while connecting to upstream"

upstream发送了RST,将连接重置

"upstream sent invalid header while reading response header from upstream"

upstream发送的响应头无效

"upstream sent no valid HTTP/1.0 header while reading response header from upstream"

upstream发送的响应头无效

"client intended to send too large body"

用于设置允许接受的客户端请求内容的最大值,默认值是1M,client发送的body超过了设置值

"reopening logs"

用户发送kill  -USR1命令

"gracefully shutting down",

用户发送kill  -WINCH命令

"no servers are inside upstream"

upstream下未配置server

"no live upstreams while connecting to upstream"

upstream下的server全都挂了

"SSL_do_handshake() failed"

SSL握手失败

"ngx_slab_alloc() failed: no memory in SSL session shared cache"

ssl_session_cache大小不够等原因造成

"could not add new SSL session to the session cache while SSL handshaking"

ssl_session_cache大小不够等原因造成

转载于:https://blog.51cto.com/nanchunle/1657410

Nginx常见的错误及解决方法相关推荐

  1. nginx常见502错误的解决方法

    Nginx 502错误情况1: 网站的访问量大,而php-cgi的进程数偏少. 针对这种情况的502错误,只需增加php-cgi的进程数.具体就是修改/usr/local/php/etc/php-fp ...

  2. 邮箱发送材料服务器连接错误,发送邮件常见的错误和解决方法

    原标题:发送邮件常见的错误和解决方法 错误1 550 Mail content denied 这种是内容的问题,用户加服务器IP白名单就可以了. 错误2 550 Connection denied 出 ...

  3. 安装常见的错误及解决方法(记录)

    博文出处:http://blog.csdn.net/tyxkzzf/article/details/47285401 adb的安装过程分为传输与安装两步. 在出错后,adb会报告错误信息,但是信息可能 ...

  4. 邮箱服务器错误550,发送邮件常见的错误和解决方法

    原标题:发送邮件常见的错误和解决方法 错误1 550 Mail content denied 这种是内容的问题,用户加服务器IP白名单就可以了. 错误2 550 Connection denied 出 ...

  5. Nginx 403 Forbidden错误的解决方法

    今天在新的环境,重新搭建了项目组测试环境的nginx,来做负载和静态资源存储,结果所有的静态资源访问全是403 Forbidden,效果图如下: 我首先想到的是Linux服务器下,存放静态资源的文件夹 ...

  6. SqlServer 内存篇(五)—— 常见内存错误与解决方法

    内存错误与内存瓶颈不同,当出现内存错误时,轻则某些特殊操作不能完成,重则整个sqlserver无响应,对sqlserver影响通常很大. sqlserver常见的内存错误主要有以下三种: 701 -- ...

  7. nginx出现403错误的解决方法(亲测有效)

    我是在在本地用虚拟机中通过yum安装nginx的,安装一切正常,但是访问时报403, 于是查看nginx日志,路径为/var/log/nginx/error.log.打开日志发现报错Permissio ...

  8. ae表达式修复_AE中常见表达式错误修改解决方法

    在运用他人AE工程文件的过程中,会遇到表达式错误和素材丢失的情况素材丢失好解决–用自己的素材进行替换即可,不赘述. 表达式错误如何修改? 打开文件经常出现这样的提示: 产生原因: 当前使用的软件版本大 ...

  9. setupsql安装程序初始化错误_ArcMap中常见的错误及解决方法

    原创 ArcGis摸索者 Gis技术分享 今天分享的绝对是干货哟,内容很长,请大家耐心观看!(这也是小编今天放假啦,耐心的给大家整理了这份资料,内容绝对好看也实用!) 小编在项目里面使用Arcgis处 ...

最新文章

  1. ASP.NET禁用视图状态
  2. python是一种面向对象的高级语言_爬了世纪佳缘后发现了一个秘密,世纪佳缘找对象靠谱吗?...
  3. 微信小程序 加载中 动画效果
  4. QT中Qpixmap与QImage的转化
  5. 电气:6机30节点经济调度(考虑负荷平衡、线路容量、斜坡约束)代码实现
  6. 淘系的音视频编辑方案:非线性编辑引擎
  7. Excel使用控件创建动态地图图表
  8. Ballerina重塑了云原生编程
  9. ubuntu下针对php的thrift 安装折腾记录
  10. [转载] python json 编码(dump/dumps:字典转化为json)、解码(load/loads:json转化为字典)
  11. ACL 2021之后是EMNLP 2021(征稿通知)
  12. 小程序仿微视_争抢流量!腾讯微视也要开始搞短视频带货
  13. horizon 7 证书服务器,vmware horizon view 7.0 ssl证书设置方案
  14. ONLYOFFICE界面汉化
  15. 【转载】js 对表格进行各种操作(转)
  16. python对excel中需要的数据的单元格填充颜色
  17. Encoded password does not look like BCrypt的原因及解决办法
  18. 洞悉旅居新市场,木莲庄酒店集团开拓酒店多元新玩法
  19. jQuery里面的选择属性和修改属性
  20. Java反射机制的原理及作用

热门文章

  1. Bootloader
  2. 【EF】EF扩展库(批量操作)
  3. Run time setting设置详解
  4. 任何时候不要把普通PC机接入到三层交换机
  5. SQL系列ROLLUP关键字
  6. React笔记:React基础(2)
  7. AlwaysOn业务IP和高可用IP分开使用方案测试报告
  8. checkbox的全选中,取消全选中
  9. 正确设置语言,加速WP应用提交
  10. TortoiseGit 连接oschina不用每次输入username和password的方法