Ошибка "PRI * HTTP/2.0" 400, которую вы получаете в PageSpeed Insights, означает, что Nginx обнаружил невалидный префикс в заголовке HTTP/2.0 запроса. Эта ошибка может происходить из-за технических проблем, неподдерживаемой версии протокола или нарушенной конфигурации сервера.
Для определения принадлежности бота к определенной стране вы можете использовать модуль GeoIP в Nginx 1.18 на Ubuntu 20.04. Ниже приведен пример конфигурации для достижения желаемого результата:
1. Установите модуль GeoIP в Nginx:
```
sudo apt-get install nginx-module-geoip
```
2. Сконфигурируйте Nginx для использования модуля GeoIP:
```
sudo nano /etc/nginx/nginx.conf
```
В раздел "http" вставьте следующую строку:
```
geoip_country /path/to/geoip/GeoIP.dat;
```
Замените "/path/to/geoip/GeoIP.dat" путем к файлу GeoIP.dat, который содержит информацию о странах.
3. Создайте прокси-блок для перенаправления ботов на определенную страницу:
```
server {
listen 80;
location / {
if ($geoip_country_code != RU) {
return 301 http://example.com/blocked-page;
}
...
вашего кода
...
}
}
```
Замените "http://example.com/blocked-page" на URL страницы, на которую вы хотите перенаправить неподдерживаемые боты.
4. Добавьте блокировку доступа к сайту для всех стран, кроме России:
```
server {
listen 80;
deny all;
location / {
allow 127.0.0.1;
allow RU;
deny all;
...
вашего кода
...
}
}
```
В данном примере доступ к сайту разрешен только для локального адреса (127.0.0.1) и России (RU). Всем другим странам будет отказано в доступе.
5. Перезапустите Nginx для применения изменений:
```
sudo systemctl restart nginx
```
После выполнения этих шагов модуль GeoIP будет использоваться для определения принадлежности ботов к странам, и вам будет разрешено перенаправлять или блокировать доступ в зависимости от страны пользователя.