Запретить показ сайта, когда перешли по ip
У меня есть два сайта, которые запущены на одном сервере. Сайты на nodejs, на https. Один располагается на домене, а другой - на субдомене. При переходе на ip сервера, где развернуты сайты, показывается сайт на основном домене. Я хочу, чтобы при переходе на ip показывалась страничка 403 forbidden (при использовании и http, и https). Я пробовала сконфигурировать /etc/nginx/sites-available/default следующим образом
server {
listen 80;
listen [::]:80;
server_name _;
location / {
deny all;
}
}
Это привело к тому, что при переходе непосредственно на http:// вылетала ошибка ERR_CONNECTION_REFUSED, а на https:// показывался сайт, но с неверным ssl сертификатом. Как мне нужно сконфигурировать nginx, чтобы получить желаемый результат? ОС на сервере Ubuntu 18.04, Nodejs v12.16.1
Ответы (1 шт):
You can create two virtual hosts in Nginx. One for default access and another for domain specific.
Then you can restrict access for default access or redirect to your domain as per your choice.
Можно создать два виртуальных хоста в нжинксе. Один для доступа по умолчанию, а другой для доступа по домену.
Затем ограничить доступ по ип или вообще редиректить на домен (как удобней/что подходит по задаче)
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name "";
return 444; # тут код ошибки
#return 301 http://www.example.com$request_uri; или можно раскомментить это и сделать редирект по домену
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name "www.example.com" # (тут ваш домен);
...
...
}