分类 Nginx 下的文章

server
{
    listen 80;
    server_name xxx.com;

    location / {
        proxy_pass      http://xxx.com:8080;

        server_tokens           off;
        client_max_body_size    20m;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    #生成缩略图等比例
    if ($args ~ ^r\d+x\d+$) {
        rewrite ^(.+)$ $1/$args? last;
    }
    location ~* \.(gif|png|jpg|jpeg)/r(\d+)x(\d+)$ {
        root /data/www/sezign.com;
        set $w $2;
        set $h $3;

        if ( $w = 0 ) {
                set $w '-';
        }
        if ( $h = 0 ) {
                set $h '-';
        }

        rewrite ^(.+)/r(\d+)x(\d+)$ $1 break;

        image_filter resize  $w $h;
        image_filter_buffer  10M;
    }

    #生成裁切图片固定高宽
    if ($args ~ ^c\d+x\d+$) {
        rewrite ^(.+)$ $1/$args? last;
    }
    location ~* \.(gif|png|jpg|jpeg)/c(\d+)x(\d+)$ {
        root /data/www/sezign.com;
        set $w $2;
        set $h $3;

        if ( $w = 0 ) {
                set $w '-';
        }
        if ( $h = 0 ) {
                set $h '-';
        }

        rewrite ^(.+)/c(\d+)x(\d+)$ $1 break;

        image_filter crop  $2 $h;
        image_filter_buffer  10M;
    }
}

在mac的Nginx环境中,修改了配置文件,重启或停止服务报了如下错误:

nginx: [error] invalid PID number "" in "/usr/local/var/run/nginx.pid"

网上很多的解决方法无效,现解决方案如下:

首先停止Nginx进程

停止操作是通过向Nginx进程发送信号来进行的

步骤1:查询nginx主进程号

ps -ef | grep nginx

在进程列表里面找到master进程,他的编号就是主进程号了。

步骤2:发送信号

从容停止:sudo kill -QUIT 主进程号

快速停止:sudo kill -TERM 主进程号

强制停止nginx:sudo pkill -9 nginx

另外,若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:

sudo kill -信号类型 '/usr/nginx/logs/nginx.pid'

然后重启服务即可。