У меня есть сервер nginx, обслуживающий http://example.com , который разрешает IP 1.2.3.4
. В настоящее время пользователи могут подключиться, перейдя на http://example.com или посетив http://1.2.3.4 .
Я хочу разрешить доступ только при использовании полного доменного имени, http://exmple.com . Как я могу настроить свой nginx для блокировки доступа через IP и разрешать доступ только при использовании полного доменного имени?
Вы можете создать два виртуальных хоста в Nginx. Один для доступа по умолчанию, а другой для домена.
Затем вы можете ограничить доступ для доступа по умолчанию или перенаправить на ваш домен по вашему выбору.
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name "";
return 444; # or comment this and uncomment below to redirect to domain.
#return 301 http://www.example.com$request_uri;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name "www.example.com";
...
...
}
Виртуальные хосты Nginx - https://tecadmin.net/setup-nginx-virtual-hosts-on-ubuntu/