@teledrom

Как сделать доступ к сайту только по домену?

Всем привет, продолжаю задавать свои профанские вопросы.
На этот раз суть такая - как сделать доступ к сайту только по домену?
Говоря еще проще у меня vps, и если зайти по ip, то я вижу свой сайт, но мне это не нужно. Сделать так чтобы открывался если зайти по домену.

Конфиг нигих
server {
	listen           80 default_server;
        listen       [::]:80 default_server;
        server_name  _;

    error_page  403 /error/404.html;
    error_page  404 /error/404.html;
    error_page  500 502 503 504 /error/50x.html;
	
location / {
    proxy_pass http://127.0.0.1:4567;
    proxy_http_version 1.1;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_cache_bypass $http_upgrade;
}

}
  • Вопрос задан
  • 1488 просмотров
Решения вопроса 1
Примерно так должно работать.

server {
  listen 80 default_server;
  listen [::]:80 default_server;
  return 444;
}

server {
  listen 80;
  listen [::]:80;
  server_name  vashdomain.com;

  error_page  403 /error/404.html;
  error_page  404 /error/404.html;
  error_page  500 502 503 504 /error/50x.html;
  
  location / {
    proxy_pass http://127.0.0.1:4567;
    proxy_http_version 1.1;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_cache_bypass $http_upgrade;
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Говоря еще проще у меня vps, и если зайти по ip, то я вижу свой сайт, но мне это не нужно. Сделать так чтобы открывался если зайти по домену.
А если "зайти" по IP что должно произойти? Сервер и/или компьютер "зашедшего" должны взорваться? :))

Один из вариантов, развития событий:
0. Открываем документацию по Nginx'у и читаем про директиву default_server
1. Создаём "сервер по умолчанию"
2. Придумываем, что там будет (например ошибка 404, пустая страница или "что-то ещё") и производим соотв. настройки
Ответ написан
Комментировать
Если сервер nginx, то делаем так:
1. Открываем файл nginx.cof (по адресу /etc/nginx/)
2. В самом начале (или перед другими командами server) файла пишем:
server {    
    listen 80 default_server;    
    server_name _;    
    return 444;
 }
 
    server {
    listen 443 ssl http2 default_server;
    server_name _;

    ssl_certificate		/etc/ssl/название_вашего_файла.crt; 
    ssl_certificate_key		/etc/ssl/private/название_вашего_ключа.txt;
    	
    add_header Strict-Transport-Security 'max-age=31536000';
    return 444;
 }

Первая команда server для http соединения, вторая команда server для https соединения. Если у вас SSL не установлен, то вторую команду server можно не писать.
Лично для своего сайта делал настройку с данным кодом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы