Как установить robots.txt глобально в nginx для всех виртуальных хостов

Cisco 2911 ISR G2 должен быть достаточной, пряной передающей мощностью приблизительно 180 Мбит. Вы получаете три интерфейса меди GE в стандартной конфигурации. При необходимости в восходящем канале волокна, эти 2921 имеют слот SFP в стандартной конфигурации Для получения брандмауэра IOS и полных crypto функций, Вам нужен пакет 2911-SEC-K9.

Наличие второго маршрутизатора для дублирования могло бы быть хорошей идеей также.

10
задан 4 June 2015 в 04:41
5 ответов
Местоположение

не может использоваться внутри блока http . nginx не имеет глобальных псевдонимов (то есть псевдонимов, которые могут быть определены для всех vhosts). Сохраните свои глобальные определения в папке и включите их.

server {
  listen 80;
  root /var/www/html;
  include /etc/nginx/global.d/*.conf;
}
4
ответ дан 2 December 2019 в 21:57

Есть ли другие определенные правила? Возможно, включен common.conf или другой файл conf, который имеет приоритет над вашей конфигурацией. Одно из следующих определенно должно работать.

location /robots.txt { alias /home/www/html/robots.txt; }
location /robots.txt { root /home/www/html/;  }
  1. Nginx запускает все местоположения "regexp" в порядке их появления. Если какое-либо местоположение "regexp" выполнено успешно, Nginx будет использовать это первое совпадение. Если местоположение "regexp" не удалось, Nginx использует обычное местоположение, найденное на предыдущем шаге.
  2. Расположение "regexp" имеет приоритет над местоположениями "prefix"
10
ответ дан 2 December 2019 в 21:57

Вы можете установить содержимое файла robots.txt непосредственно в конфигурации nginx:

    location = /robots.txt { return 200 "User-agent: *\nDisallow: /\n"; }

Также можно добавить правильный Content-Type :

    location = /robots.txt {
       add_header Content-Type text/plain;
       return 200 "User-agent: *\nDisallow: /\n";
    }
37
ответ дан 2 December 2019 в 21:57

У меня была та же проблема с acme challanges, но тот же принцип применим и к вашему случаю.

Для решения этой проблемы я переместил все свои сайты в non -стандартный порт, я выбрал 8081 и создал виртуальный сервер, прослушивающий порт 80.Он направляет все запросы на 127.0.0.1:8081 , кроме тех, которые отправляются на .well-known. Это действует почти как глобальный псевдоним с одним дополнительным прыжком, но это не должно вызывать значительного падения производительности из-за асинхронной природы nginx.

upstream nonacme {
  server 127.0.0.1:8081;
}

server {
  listen 80;

  access_log  /var/log/nginx/acme-access.log;
  error_log   /var/log/nginx/acme-error.log;

  location /.well-known {
    root /var/www/acme;
  }

  location / {
    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_set_header    X-Frame-Options     SAMEORIGIN;

    # WebSocket support (nginx 1.4)
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_pass http://nonacme;
  }
}
-1
ответ дан 2 December 2019 в 21:57

Вы также можете отправить файл robots.txt напрямую:

location /robots.txt {
   return 200 "User-agent: *\nDisallow: /\n"
}
0
ответ дан 26 August 2020 в 13:54

Теги

Похожие вопросы