Certbot 更改了其中一个站点的 Nginx 站点配置文件后,两个站点上的网关出现故障

Certbot 更改了其中一个站点的 Nginx 站点配置文件后,两个站点上的网关出现故障

在 Certbot 更改了其中一个站点的 Nginx site-conf 文件后,我在另外两个站点上遇到了网关错误。

全部沒有錯誤nginx -t

仅此出现于tail /var/log/nginx/error.log

2017/10/24 15:40:47 [错误] 27439#27439:*125 connect() 连接到上游时失败(111:连接被拒绝),客户端:66.249.69.71,服务器:domain.tld1,请求:“GET /category/%D7%9B%D7%9C%D7%9C%D7%99/HTTP/1.1”,上游:“fastcgi://127.0.0.1:9000”,主机:“contfix.co.il”root@benqzq:~#

仅此出现于tail /var/log/nginx/access.log

185.188.204.5 - - [24/Oct/2017:15:44:13 +0000] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/4.0 (兼容:MSIE 7.0;Windows NT 6.0)"

  • nginx reset 没有错误。

这是我使用 Certbot 更改的站点的 site-conf:

server {
    root /var/www/html/contfix.co.il;
    server_name contfix.co.il www.contfix.co.il;

    location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass 127.0.0.1:9000;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~*  \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff|pdf)$ {
        expires 365d;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/contfix.co.il/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/contfix.co.il/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    # Redirect non-https traffic to https
    # if ($scheme != "https") {
    #     return 301 https://$host$request_uri;
    # } # managed by Certbot
}

我没有选择使用 Certbot 完成的第二个站点的 site-conf 文件保持不变。

在安装和使用 Certbot 之前,两个站点都运行良好。

我去了,nginx/conf.d/ssl但那里的文件包含密钥,而没有可以用来调试的东西。

我应该如何进一步调试这个问题?

更新

在我的域上使用 Certbot 时,我收到错误:

Could not open file: /etc/nginx/sites-enabled/default

当我这样做时,certbot renew --dry-run我也得到了它,但我并没有在执行“certbot renew”时得到它。

答案1

主要问题是电脑生成图像处理正如我的 site-conf 文件中显示的,关于我的网站(负责依赖于 PHP 的数据处理)的指令在实施 SSL 后并不像它们应该的那样。

这是有效的新设置:

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

关于我遇到的默认错误,只需转到 sites-enabled 并删除名为 default 的符号链接 inode。因此,即使您在 中有一个默认模板sites-available,也不会使用它。

相关内容