У меня новая установка Ubuntu 14.04 со следующими шагами:
NginX 1.10. 1 с сертификатом ssl в / etc / nginx / ssl
и ** -> Проблема возникает до и после этих конфигураций *** -> wp-config.php has code to force ssl login and ssl admin. Both work fine with only Apache/Varnish. Made an ssl certificate for Apache and everything worked fine if Apache set to listen to port 443.
This is my /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
This is my /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
This is the 'backend' part in my /etc/varnish/default.vcl:
backend default {
.host = "192.168.1.86";
.port = "8080";
}
This is in my /etc/default/varnish:
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
This is my /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;
}
}
Tried a lot of combination in /etc/nginx/sites-available/default with the 'listen 443', like:
listen 443 ssl default_server; listen [::]: 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.
Кто-нибудь может помочь, пожалуйста? Thanks in advance
Вы можете попробовать кое-что, чтобы не возиться с конфигурацией файла по умолчанию
а) Создайте свой собственный файл конфигурации в / etc / nginx / sites-available
, а затем включить его с помощью программной ссылки в / etc / nginx / sites-enabled
б) полностью отключить сайт по умолчанию
, удалив default
в / etc / nginx / sites-enabled
или просто измените порт конфигурации по умолчанию
, чтобы nginx слушал порт 81 (например)
Так что в случае Nginx настаивает на прослушивании через http или что-то еще, что вызывает это поведение, он не будет использовать порт 80 и позволить Varnish использовать его.
В качестве альтернативы обновитесь до Ubuntu 16.04 LTS, что даст вам много обновлений всего, включая Openssl v1 .0.2+, чтобы вы могли включить поддержку HTTP / 2.