2016-02-24 2 views
1

Я просто передал сайт на сервер DO, предоставленный Forge. Я установил SSL-сертификат и заметил, что переход на https://www.example.com приводит к ошибке сервера, не найденной, а http://example.com возвращает 200. Я попытался принудительно выполнить не-WWW в файле конфигурации Nginx, но не могу заставить ничего работать. Я также перезапустил Nginx после каждой попытки.Forge/Nginx DO WWW для перенаправления WWW

Вот мой текущий Nginx конфигурационный файл:

server { 
listen 80; 
server_name example.com; 
return 301 https://example.com$request_uri; 
} 

server { 
listen 443 ssl; 
server_name .example.com; 
root /home/forge/default/current/public; 

# FORGE SSL (DO NOT REMOVE!) 
ssl_certificate /etc/nginx/ssl/default/56210/server.crt; 
ssl_certificate_key /etc/nginx/ssl/default/56210/server.key; 

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 

index index.html index.htm index.php; 

charset utf-8; 

location/{ 
try_files $uri $uri/ /index.php?$query_string; 
} 

location = /favicon.ico { access_log off; log_not_found off; } 
location = /robots.txt { access_log off; log_not_found off; } 

access_log off; 
error_log /var/log/nginx/default-error.log error; 

error_page 404 /index.php; 

location ~ \.php$ { 
fastcgi_split_path_info ^(.+\.php)(/.+)$; 
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
fastcgi_index index.php; 
include fastcgi_params; 
} 

location ~ /\.ht { 
deny all; 
} 
} 

Сервер был создан с сайта по умолчанию - по умолчанию, а не example.com. Я понял это после запуска сайта для производства и установки SSL-сертификата, я стараюсь избежать простоя, пытаясь изменить это после факта. Я не уверен, что сайт, называемый по умолчанию, имеет здесь какое-либо значение, но это ключ к сведению.

Итак, https: // или http://example.com работает нормально. www.example.com возвращает ошибку сервера не найдена во всех браузерах, которые я тестировал. Я также заметил, что есть www.default файл в/и т.д./Nginx/сайты с поддержкой, я попытался изменить его к следующему и повторного запуска Nginx:

server { 
listen 80; 
server_name www.example.com; 
return 301 $scheme://example.com/$request_uri; 
} 

Еще получающий сервер не не найден ни на что. Вот ошибка в Chrome:

Не удалось найти сервер на сайте www.example.com, так как поиск DNS не удался. DNS - это сетевой сервис, который переводит имя веб-сайта на его интернет-адрес. Эта ошибка чаще всего возникает из-за отсутствия подключения к Интернету или неправильно сконфигурированной сети. Это также может быть вызвано невосприимчивым DNS-сервером или брандмауэром, препятствующим доступу Google Chrome к сети.

ответ

0

Ну, видимо, мне просто нужно отдохнуть. После того, как я закончил свой обед, мне пришло в голову, что Хром все время давал мне ответ - это проблема DNS. Я добавил запись A для www, указывающую на мой IP-адрес в Digital Ocean, проблема решена.

Я полагаю, что по умолчанию на серверах DO, предоставленных Laravel Forge, отсутствует www.

Смежные вопросы