У меня новая установка Ubuntu 14.04 со следующими шагами:
NginX 1.10.1 с сертификатом ssl в / etc / nginx / ssl
и ** -> Проблема возникает до и после этих конфигураций *** -> wp-config.php имеет код для принудительного входа в систему по ssl и администратора по ssl. Оба прекрасно работают только с Apache / Varnish. Сделал ssl-сертификат для Apache, и все работало нормально, если Apache настроен на прослушивание порта 443.
Это мой /etc/apache2/ports.conf:
#NameVirtualHost 192.168.1.86
ServerName 192.168.1.86
Listen 8080
#<IfModule ssl_module>
# Listen 443
#</IfModule>
#<IfModule mod_gnutls.c>
# Listen 443
#</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Это мой /etc/apache2/sites-available/000-default.conf:
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi-www-data .php
Action php7-fcgi-www-data /php7-fcgi-www-data
Alias /php7-fcgi-www-data /usr/lib/cgi-bin/php7-fcgi-www-data
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-www-data -socket /run/php/php7.0-fpm.www-data.sock -pass-header Authorization
<Directory "/usr/lib/cgi-bin">
Require all granted
</Directory>
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler php7-fcgi-www-data
</FilesMatch>
</IfModule>
<VirtualHost *:8080>
ServerAdmin karls@192.168.1.86
DocumentRoot /var/www/html
ServerName 192.168.1.86
<Directory /var/www/html/>
AllowOverride All
</Directory>
Alias /phpmyadmin "/usr/share/phpmyadmin/"
<Directory "/usr/share/phpmyadmin/">
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Это «бэкэнд» в моем /etc/varnish/default.vcl:
backend default {
.host = "192.168.1.86";
.port = "8080";
}
Это в моем / etc / default / varnish:
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Это мой / etc / nginx / sites-available / default:
server {
listen 443 ssl;
server_name 192.168.1.86;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass http://192.168.1.86:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Host $host;
}
}
Пробовал много комбинаций в / etc / nginx / sites-available / default с 'listen 443', например:
слушать 443 ssl default_server; прослушать [::]: 443 ssl default_server ipv6only = on;
ЭТА ПРОБЛЕМА
https://192.168.1.86/wp-admin (или https://192.168.1.86и т. д.) показывает «Невозможно подключиться», что бы я ни делал в файлах конфигурации nginx. Пробовал МНОГОЕ.
Nginx вроде в порядке (синтаксис, конфигурация), но при активации не работает. Журнал ошибок говорит:
2016/08/23 14:02:07 [emerg] 10857#10857: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/23 14:02:07 [emerg] 10857#10857: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/23 14:02:07 [emerg] 10857#10857: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/23 14:02:07 [emerg] 10857#10857: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/23 14:02:07 [emerg] 10857#10857: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/23 14:02:07 [emerg] 10857#10857: still could not bind()
По какой-то причине nginx пытается занять порт 80, но предполагается, что он использует 443.
Я видел других людей, у которых была такая же проблема, например: nginx пытается подключиться к неправильному порту
Для ясности: я ДЕЙСТВИТЕЛЬНО знаю, что есть один сервер, использующий порт 80. Чего я НЕ знаю, так это того, почему nginx пытается использовать порт 80, когда он должен использовать 443.
Кто-нибудь может помочь, пожалуйста? заранее спасибо
Вы можете попробовать кое-что, чтобы не возиться с default
конфигурация файла
а) Создайте свой собственный файл конфигурации в /etc/nginx/sites-available
а затем включите его софт-ссылкой в /etc/nginx/sites-enabled
б) отключить default
сайт полностью, удалив default
ссылка в /etc/nginx/sites-enabled
или просто измените порт default
config, чтобы nginx слушал порт 81 (например)
Таким образом, в случае, если Nginx настаивает на прослушивании http или того, что вызывает такое поведение, он не будет использовать порт 80 и позволить Varnish принимать его.
В качестве альтернативы обновитесь до Ubuntu 16.04 LTS, который предоставит вам много обновлений, включая Openssl v1.0.2 +, чтобы вы могли включить поддержку HTTP / 2.