Мой веб-сайт настроен для доступа через example.com. Если возможно, я хочу полностью запретить доступ к нему через его IP-адрес или хотя бы 301 перенаправить его на веб-сайт.
Возможно ли первое, и если да, то как?
Вы должны создать файл конфигурации vhost по умолчанию и включить его раньше других.
Например, вы можете сохранить эту конфигурацию по умолчанию в /etc/nginx/conf/default.conf:
server {
listen 80 default_server;
return 444;
}
И включите его в nginx.conf:
http {
....
include "/etc/nginx/conf/default.conf";
include "/etc/nginx/vhosts/*.conf";
}
Убедитесь, что он включен до других конфигураций vhosts.
Вам просто нужно добавить серверный блок в конфигурацию nginx.
Следующий код вернет ошибку 403 пользователям, обращающимся к вашему серверу через IP:
server {
listen 80; # IPv4
listen [::]:80; # IPv6 (if enabled)
server_name ""; # no domain name
return 403;
}