У меня есть веб-сайт, работающий на веб-сервере Nginx, который работает по HTTPS. Недавно я заметил, что кто-то указал свой домен на мой веб-сервер, а Nginx обслуживает мой веб-сайт на этом плохом домене. Вроде даже в гугле индексируется ...
Конфигурация Nginx:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;
root /var/www/example.com;
index index.html;
}
Я пробовал добавить if
заявление, чтобы проверить, $host
соответствует server_name
как рекомендовано Вот
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;
# Check if incoming hostname matches server_name
if ($host != $server_name) {
# If not, return 404
return 404;
}
root /var/www/example.com;
index index.html;
}
Это дополнение, похоже, не помогло. На правильном ли пути все это? Любые предложения будут высоко ценится
Лучшим вариантом было бы создание универсального сервера. Вы могли либо return 404;
, как предлагается, или перенаправить все на каноническое имя хоста; это решило бы проблему с поисковыми системами.
Вот моя альтернатива с полной конфигурацией:
server {
# catch-all server for both http and https
listen *:80 default_server;
listen *:443 default_server;
server_name _;
# Your SSL configuration
ssl_certificate /etc/nginx/ssl/example.com/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;
# Redirect to canonical site
rewrite ^/(.*)$ http://example.com/$1 permanent;
}
У меня есть веб-сайт, работающий на веб-сервере Nginx, который работает по HTTPS. Недавно я заметил, что кто-то указал свой домен на мой веб-сервер, а Nginx обслуживает мой веб-сайт на этом плохом домене. Вроде даже в гугле индексируется ...
Лучший способ справиться с этой или подобной ситуацией - создать серверный блок по умолчанию. Например, вот что мне нужно для обслуживания других доменов, которые указывают на IP моего сервера.
server {
listen 80 default_server;
server_name _;
# deny all
location / {
return 403;
}
}
Надеюсь, это поможет!