LINUX.ORG.RU
решено ФорумAdmin

Не могу настроить www to non-www редирект

 ,


0

1

На VPS-ке указал конфиг для домена:

https://i.ibb.co/XtzgHgQ/Screenshot-20220611-210955.png

В конфиге сайта для Nginx прописал:

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

В итоге при заходе на mydomain.com я вижу заглушку сервака: «Welcome to nginx!», а при заходе на www.mydomain.com я вижу ошибку: ERR_NAME_NOT_RESOLVED

Везде в мануалах только это нужно сделать. Что я делаю не так?

★★★★★

Последнее исправление: CryNet (всего исправлений: 1)

Ответ на: комментарий от vvn_black

А-а-а, ждать нужно. Да, только задал имена.

Обновил запись. Сделал такой:

https://i.ibb.co/ykgLMjp/1.png

А почему тогда при обращении на mydomain.com я вижу заглушку Nginx. Разве не должен отобразиться мой сайт?

CryNet ★★★★★
() автор топика
Ответ на: комментарий от CryNet

Нет ответа, только гадания.

Правильность NS-записи проверяется утилитами dig или nslookup, надо чтобы доменное имя указывало на нужный IP.

nginx - это отдельно, надо смотреть логи.

vvn_black ★★★★★
()
Ответ на: комментарий от CryNet

А почему тогда при обращении на mydomain.com я вижу заглушку Nginx. Разве не должен отобразиться мой сайт?

Потому-что блок server описывающий твой сайт либо отсутствует. либо неправильный. Показывай весь конфиг nginx

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Конфиг сайта:

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

  #charset koi8-r;

  #STORE the nginx access logs for this app here
  access_log /var/log/nginx/mydomain.com.access.log;
  #Store the error logs for this app here
  error_log /var/log/nginx/mydomain.com.error.log;

  location /
  {
    root /var/www/html/mydomain.com/client/dist;
    index index.html index.htm;
  }

  location ^~ /static/image
  {
    alias /var/www/html/mydomain.com/static/image;
  }

  #REST API BACKEND CONFIG
  location /api
  {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://localhost:5000;
    proxy_ssl_session_reuse off;
    proxy_set_header Host $http_host;
    proxy_cache_bypass $http_upgrade;
    proxy_redirect off;
  }
}

CryNet ★★★★★
() автор топика
Ответ на: комментарий от CryNet

Этот блок отвечает только за www.mydomain.com (и всё что он делает это редиректит на mydomain.com, так что непонятно зачем нужно всё что ниже return).

Где-то должен быть блок server с server_name mydomain.com, судя по всему его либо нет, либо в нём что-то не так настроено.

Должно быть что-то вроде такого видимо:

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

server
{
  listen 80;
  server_name mydomain.com;
  #charset koi8-r;

  #STORE the nginx access logs for this app here
  access_log /var/log/nginx/mydomain.com.access.log;
  #Store the error logs for this app here
  error_log /var/log/nginx/mydomain.com.error.log;

  location /
  {
    root /var/www/html/mydomain.com/client/dist;
    index index.html index.htm;
  }

  location ^~ /static/image
  {
    alias /var/www/html/mydomain.com/static/image;
  }

  #REST API BACKEND CONFIG
  location /api
  {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://localhost:5000;
    proxy_ssl_session_reuse off;
    proxy_set_header Host $http_host;
    proxy_cache_bypass $http_upgrade;
    proxy_redirect off;
  }
}
MrClon ★★★★★
()