




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海纽斯达科技上海纽斯达科技 Nginx 常见错误与解决方法常见错误与解决方法 上海纽斯达科技有限公司上海纽斯达科技有限公司 2014-10-25 文档状态文档状态 目的:目的: 在 Nginx 服务器出现故障时,能快速定位并解决相关错误。 保密:保密: 本文档仅供内部使用,请勿外传 概述:概述: Nginx 常见错误与问题之解决方法技术指南。 安装环境:安装环境: 系统环境:redhat enterprise 6.5 64bit 文档编号文档编号 Nsdkj-778 保保 密密 等等 级级限制 作作 者者刘恒亮最后完成日期最后完成日期 2014-12-25 审审 核核 人人最后审核日期最后审核日期 2014-12-25 文件状态:文件状态: 【 】草稿草稿 【 】修改稿修改稿 【】正式发布正式发布 批批 准准 人人最后批准日期最后批准日期 2014-12-25 1 1、NginxNginx 常见启动错误常见启动错误 有的时候初次安装 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 /lib 64 位系统 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 -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 2、400400 badbad requestrequest 错误的原因和解决办法错误的原因和解决办法 配置 nginx.conf 相关设置如下. client_header_buffer_size 16k; large_client_header_buffers 4 64k; 根据具体情况调整,一般适当调整值就可以。 3 3、NginxNginx 502502 BadBad GatewayGateway 错误错误 在 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: 01, server: , request: “POST /index.php HTTP/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 4、NginxNginx 出现的出现的 413413 RequestRequest EntityEntity TooToo LargeLarge 错误错误 这个错误一般在上传文件的时候会出现, 编辑 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 5、解决、解决 504504 GatewayGateway Time-out(nginx)Time-out(nginx) 遇到这个问题是在升级 discuz 论坛的时候遇到的一般看来, 这种情况可能是由于 nginx 默认的 fastcgi 进程响应的缓冲区太小造成的, 这将导致 fastcgi 进程被挂起, 如果你的 fastcgi 服 务 对这个挂起处理的不好, 那么最后就极有可能导致 504 Gateway Time-out,现在的网站, 尤其 某 些论坛有大量的回复和很多内容的, 一个页面甚至有几百 K。默认的 fastcgi 进程响应的缓冲 区 是 8K, 我们可以设置大点在 nginx.conf 里, 加入: fastcgi_buffers 8 128k 这表示设置 fastcgi 缓冲区为 8128 当然如果您在进行某一项即时的操作, 可能需要 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: 01, 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/cdai/; 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/$fastcgi_script_name; 6 6、如何使用、如何使用 NginxNginx ProxyProxy 朋友一台服务器运行 tomcat 为 8080 端口,IP::8080,另一台机器 IP:. 朋友想通过访问 即可访问 tomcat 服务.配置如下: 在 的 nginx.conf 上配置如下: server listen 80; server_name location / proxy_pass :8080; include /usr/local/nginx/conf/proxy.conf; 7.7. 安装完成安装完成 NginxNginx 后无法站外访问?后无法站外访问? 刚安装好 nginx 一个常见的问题是无法站外访问,本机 wget、telnet 都正常。而服务器之外, 不管是局域网的其它主机还是互联网的主机都无法访问站点。如果用 telnet 的话,提示: 正在连接到 192.168.0.xxx.不能打开到主机的连接, 在端口 80: 连接失败 如果用 wget 命令的话,提示: Connecting to 00: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 tcp dpt:80 就说明防火墙规则已经添加成功了,再在站外访问就正常了。 8 8、如何关闭、如何关闭 NginxNginx 的的 LOGLOG 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 whil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论