Nginx разрешает определенные адреса ip4

#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.com

4. Да, это личное. Тогда как я могу разрешить некоторый IP-адрес в nginx, потому что общедоступный IP-адрес всегда меняется через несколько дней. У вас есть идея? Моя проблема в том, что я хочу разрешать только пользователям, которые находятся в определенной сети. например, если они подключены через vpn.