nginx показывает IP-адрес вместо домена - PullRequest
2 голосов
/ 02 мая 2020

У меня есть godaddy. Запись, указывающая на мой IP-адрес Digital Ocean.

Вот конфигурация nginx.

server {
    listen 80 default_server;
    server_name domain.com www.domain.com;
    location / {
       proxy_pass 'http://127.0.0.1:3004';
    }
}

Когда я набираю domain.com, она переходит к сервер, но в адресной строке отображается IP-адрес.

Как можно отобразить имя домена?

Ответы [ 2 ]

2 голосов
/ 02 мая 2020

Скорее всего, это перенаправление от proxy_pass. Я не уверен, что вы используете в бэкэнде, но вы можете попробовать передать имя хоста.

proxy_set_header Host      $host;

Добавьте эту строку после proxy_pass, чтобы сообщить бэкэнду, какой домен находится в заголовках запроса.

0 голосов
/ 02 мая 2020

Перенаправление на IP-адрес , наиболее вероятно , выполненное вашим бэкэндом в proxy_pass. Вы можете попытаться добавить заголовок, чтобы помочь бэкэнду понять контекст запроса.

Я бы рекомендовал для начала следующую конфигурацию:

server {
    listen 80 default_server;
    server_name domain.com www.domain.com;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;


    location / {
       proxy_pass 'http://127.0.0.1:3004';
    }
}

Если вы используете Node.JS, вам также может понадобиться следующая строка:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';

Пожалуйста также проверьте конфигурацию вашего бэкэнда. Возможно, вам потребуется настроить URL доступа, контекстный путь и т. Д. c.

...