У меня есть сервер nginx на Debian с несколькими доменами. Все они живут в папке html. Затем записи A указывают на мой сервер, и вы можете получить доступ к файлам в /var/www/html/mywebsite.biz
, перейдя на https://mywebsite.biz . Я также назначаю им сертификаты TLS с помощью Let's Encrypt.
Это выглядит так:
└── html
├── mywebsite.biz
├── anotherwebsite.net
├── example-three.com
└── somewebsite.ca
Однако вы можете получить доступ к этой папке html
без TLS через мой IP-адрес следующим образом:
http: //216.58. 216.78 / mywebsite.biz
Но у меня также есть случаи, когда я бы хотел, чтобы это произошло. например, если я хочу создать тестовый сайт, прежде чем я смогу указать домен на свой сервер. Для этого я использовал noip.com, чтобы присвоить ему понятное имя вроде этого:
http://myservername.ddns.net/somewebsite.ca (просто тестовый сайт)
Какой лучший способ запретить доступ через IP-адрес / понятное имя только для некоторых сайтов?
Запретить / перенаправить их:
http://myservername.ddns.net/mywebsite.biz
http://216.58.216.78/mywebsite .biz
Разрешить это:
http://myservername.ddns.net/somewebsite.ca
Я предполагаю просто перенаправить их туда, но я немного новичок в nginx и хочу убедиться это лучший способ.
Используйте эту конфигурацию сайта. В основном она не позволяет Nginx отвечать на запросы по IP. Директива "default_server" является ключевой частью.
# This just prevents Nginx picking a random default server if it doesn't know which server block to send a request to
server {
listen 80 default_server;
server_name _;
return 444; # This means "go away", effectively
access_log off; log_not_found off; # Optional
}
Несмотря на то, что можно делать все, что угодно, используя кучу регексовых совпадений для запрашиваемого URL, я бы избегал доступа через IP к родительской (html) директории, потому что это невозможно: -
Вместо этого, чтобы тестировать сайты до того, как вы настроите домен и сделаете его доступным, просто:-
В Linux файл hosts - /etc/hosts
В Windows файл hosts - c:\windows\system32\drivers\etc\hosts
Вот пример записи в файле hosts 216.58.216.78 www.myfunkysite.com