У меня есть карта блокировки ботов, которую я использую, которая заставляет nginx отвечать с 444. У меня есть блоки «если» в каждом блоке сервера, и это работает, но я хочу знать, помещаю ли это наверху на своем собственном сервере Блок будет лучше, или как именно я должен это делать?
В настоящее время мой файл domainname.org.conf имеет 3 серверных блока. Первый блок делает небезопасным и безопасным перенаправление со старых запросов домена на новый домен (мы переименовали). Второй блок обрабатывает перенаправление domainname.org на www.domainname.org. Третий блок на самом деле имеет мясо и картошку для PHP и еще много чего.
вот конф, некоторые данные опущены и запутаны.
server {
listen 80;
listen 443;
MY CERT STUFF IS HERE BUT I'M NOT SHARING DETAILS
server_name olddomainname.org *.olddomainname.org;
#blocks blank user_agents
if ($limit_bots = 1) {
return 444;
}
return 301 https://www.newdomainname.org$request_uri;
}
#############################################################################################
# THIS SERVER BLOCK SIMPLY ACCEPTS ANY INCOMING NON-SUBDOMAININSECURE DOMAIN AND REROUTES IT TO A SECURE ONE
# IT ONLY AFFECTS THE PROD WEBSITE. IT SHOULD NOT INTERFERE WITH ANY DEVELOPMENT SUBDOMAINS
server {
listen 80;
listen 443;
server_name newdomainname.org;
#blocks blank user_agents
if ($limit_bots = 1) {
return 444;
}
return 301 $scheme://www.newdomainname.org$request_uri;
}
#############################################################################################
# THIS SERVER BLOCK HANDLES ANY INCOMING INSECURE SUBDOMAIN
server {
listen 80;
listen 443 default ssl;
MY CERT STUFF IS HERE BUT I'M NOT SHARING DETAILS
server_name www.newdomainname.org;
#blocks blank user_agents
if ($limit_bots = 1) {
return 444;
}
## Redirect 80 to 443
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
root /var/www;
Это работает, но добавляет повторение.