У меня плохой шлюз на 2 сайтах после того, как 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)"
Это конфигурация сайта, которую я изменил с помощью Certbot:
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
}
Файл site-conf второго сайта, который я не решил заканчивать с помощью Certbot, остался прежним.
Оба сайта отлично работали до установки Certbot и работы с ним.
я пошел в nginx/conf.d/ssl
но файлы там содержат ключи, а не то, с чем можно работать для отладки.
Как мне дальше отлаживать это?
При использовании Certbot в моем домене я получил ошибку:
Could not open file: /etc/nginx/sites-enabled/default
Когда я сделал certbot renew --dry-run
Я тоже получил это, но я не получил его только когда делал "обновление certbot".
Основная проблема заключалась в том, что CGI директивы, касающиеся моего сайта (отвечающего за PHP-зависимую обработку данных), как показано в моем файле site-conf, не были такими, какими они должны быть после внедрения 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;
}
Что касается ошибки, которую я имел с деталтом, просто перейдите на сайты с поддержкой и удалите индексный код символической ссылки, называемый default. Таким образом, даже если у вас есть шаблон по умолчанию в sites-available
, он не будет использоваться.