#nginx #routes #webserver
#nginx #маршруты #веб-сервер
Вопрос:
Я хочу разрешить доступ к моему сайту только определенным клиентским ip4-адресам. Но я вижу в журнале доступа только внешний IP-адрес, а не реальный ip4-адрес клиента.
Что я пробовал:
server {
server_name test.sample.com;
location / {
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header Host $host;
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
#proxy_set_header REMOTE_ADDR $remote_addr;
# my specific ip4 adresses to allow
allow 192.XXX.XXX;
allow 192.XXX.XXX;
deny all;
}
root /usr/share/nginx/test;
error_log /var/log/nginx/app-server-error.log notice;
index demo-index.html index.html;
expires -1;
sub_filter_once off;
sub_filter 'server_hostname' '$hostname';
sub_filter 'server_address' '$server_addr:$server_port';
sub_filter 'server_url' '$request_uri';
sub_filter 'remote_addr' '$remote_addr:$remote_port';
sub_filter 'server_date' '$time_local';
sub_filter 'client_browser' '$http_user_agent';
sub_filter 'request_id' '$request_id';
sub_filter 'nginx_version' '$nginx_version';
sub_filter 'document_root' '$document_root';
sub_filter 'proxied_for_ip' '$http_x_forwarded_for';
}
Ничего из них не работает. Когда я показываю журнал доступа:
87.xx.xxx.xxx - - [20/Oct/2020:22:29:15 0000] "GET ...
87.xx.xxx.xxx - - [20/Oct/2020:22:29:16 0000] "GET ...
Но это мой внешний ip-адрес, а не реальный ip4-адрес.
Кто-нибудь может мне помочь, пожалуйста?
Спасибо
Комментарии:
1. Вы получаете доступ к сервису изнутри
87.xx.xxx.xxx
?2. на самом деле nginx работает на экземпляре aws ec2, и я вызываю веб-сайт из своего браузера на ПК. Когда я проверяю свой компьютер, ip4-адрес составляет что-то вроде 192.xxx …., а внешний — 87.xx….. В журнале доступа к nginx я вижу адреса 87.xx ….
3. Если
192.168.x.x
это частный IP-адрес , который существует только в вашей локальной сети. AWS увидит ваш общедоступный IP-адрес, который вы можете проверить, перейдя на веб-сайт, например myipaddress.com4. Да, это личное. Тогда как я могу разрешить некоторый IP-адрес в nginx, потому что общедоступный IP-адрес всегда меняется через несколько дней. У вас есть идея? Моя проблема в том, что я хочу разрешать только пользователям, которые находятся в определенной сети. например, если они подключены через vpn.