zoukankan      html  css  js  c++  java
  • nginx 问题总结

    1, 403错误

    403是很常见的错误代码,一般就是未授权被禁止访问的意思。

    可能的原因有两种:
    Nginx程序用户无权限访问web目录文件
    Nginx需要访问目录,但是autoindex选项被关闭

    修复方法:
    授予Nginx程序用户权限读取web目录文件
    设置autoindex目录为on
     
    location /path/to/website/folder {
    ...
    autoindex on;
    ... }


    2, 413错误

    在上传时Nginx返回了413错误:“413 Request Entity Too Large”,这一般就是上传文件大小超过Nginx配置引起。

    修复方法:
    在Nginx.conf增加client_max_body_size的设置,这个值默认是1M,可以增加到8M以提高文件大小限制;
    如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。


    post_max_size = 8M
    upload_max_filesize = 2M


    3, 502错误
    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止。一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关。


    修复方法:
    1、查看FastCGI进程是否已经启动


    ps -aux | grep php-cgi


    2、检查系统Fastcgi进程运行情况


    除了第一种情况,fastcgi进程数不够用、php执行时间长、或者是php-cgi进程死掉也可能造成Nginx的502错误。


    运行以下命令判断是否接近FastCGI进程,如果fastcgi进程数接近配置文件中设置的数值,表明worker进程数设置太少。


    netstat -anpo | grep "php-cgi" | wc -l


    3、FastCGI执行时间过长


    根据实际情况调高以下参数值


    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;


    4, 504错误


    Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。

    Nginx 504 Gateway Time-out一般与Nginx.conf的设置有关。

    头部太大这种情况可能是由于Nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起,如果你的fastcgi服务对这个挂起处理的不好,那么最后就极有可能导致504 Gateway Time-out。

    默认的fastcgi进程响应的缓冲区是8K,可以调大以下参数:


    fastcgi_buffer_size 128k;
    fastcgi_buffers 8 128k;
    fastcgi_busy_buffers_size 由 128K 改为 256K;
    fastcgi_temp_file_write_size 由 128K 改为 256K。


    此外,也可能是php-cgi的问题,需要修改php.ini的配置:

    将max_children由之前的10改为30,这样操作是为了保证有充足的php-cgi进程可以被使用。
    将request_terminate_timeout由之前的0秒改成60秒,这样使php-cgi进程处理脚本的超时时间提高到60秒,可以防止进程被挂起以提高利用效率

    5, 域名重复
        nginx: [warn] conflicting server name "bbs.kingle.org" on 0.0.0.0:80, ignored
        打开nginx配置文件 查看看自己的配置文件是否域名有配置相同的

    6,  pid
     nginx: [error] open() "/application/nginx-1.14.0/logs/nginx.pid" failed (2: No such file or directory)

     pid 文件没找到
     由于nginx进程停止没有启动的时候进行平滑重启照成的 nginx 启动程序


    7,  worker进程用户被删除了
        nginx: [emerg] getpwnam("www") failed
        worker进程管理用户被删除了
        
    8,  服务已经启动,不要反复启动
        [root@web01 www]# nginx
        nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
        nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
        nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
        nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
        nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
        nginx: [emerg] still could not bind()
    9, nginx: [alert] kill(19795, 15) failed (3: No such process)

     由于服务没有启动照成的

    nginx即可

    10, nginx: [emerg] open() "/application/nginx-1.14.0/nginx.conf" failed (2: No such file or directory)

      配置文件出错

    11, nginx: [emerg] unexpected "}" in /application/nginx-1.14.0/conf/nginx.conf:12
      查看配置文件是否没有分号;

     12, [root@web01 conf]# curl status.kingle.org
    curl: (6) Couldn't resolve host 'status.kingle.org'

    原因时当前主机没有编写hosts文件 进入host对应ip 编写status.kingle.org

     13, nginx 显示欢迎界面不符和, 和配置的文件不符合

      由于你yum 安装了nginx 然后还编译安装了.导致读取文件出错

      

  • 相关阅读:
    网络协议 19
    网络协议 18
    网络协议 17
    网络协议 16
    网络协议 15
    .NET基础知识(01)-值类型与引用类型
    .NET基础知识(02)-拆箱与装箱
    网络协议 14
    网络协议 13
    网络协议 12
  • 原文地址:https://www.cnblogs.com/kingle-study/p/9596301.html
Copyright © 2011-2022 走看看