Назад | Перейти на главную страницу

Nginx «разрешает 127.0.0.1» в блоке локации, пропуская всех пользователей

Проблема

В моей конфигурации nginx есть следующий блок.

Идея состоит в том, чтобы позволить серверу обращаться к файлу, но никому другому. Если кто-то еще обращается к i, он должен выдать 403. Если я закомментирую строку разрешения, вот что произойдет. Однако, если я оставлю его, любой сможет получить к нему доступ.

Что я делаю не так?

location = /update.php {
       allow 127.0.0.1;
       deny all;
       fastcgi_param SCRIPT_FILENAME /srv/www/mysite/public$fastcgi_script_name;
       fastcgi_pass 127.0.0.1:9000;
       include /etc/nginx/fastcgi_params;
   }

Попробуйте вот так.

error_page 403 http://yourdomain.tld/403page.htm;
location /update.php {
  allow <your-server-ip>;
  fastcgi_param SCRIPT_FILENAME /srv/www/mysite/public$fastcgi_script_name;
  fastcgi_pass 127.0.0.1:9000;
  include /etc/nginx/fastcgi_params;
  deny all;
}