Есть wifi-сеть, роутер - Alcatel, интернет-соединение закрыто для пользователя, пока он не авторизуется на портале. Этот портал получает ip пользователя через заголовок HTTP_REMOTE_ADDR
(т.е. 10.0.1.141), после аутентификации интернет-соединение будет открыто через RADIUS, но затем портал не получает HTTP_REMOTE_ADDR
, вместо этого он получает HTTP_X_REAL_IP
(т.е. 109.194.144.60 выглядит как DHCP), и больше нет информации о старом IP в любом другом заголовке.
Почему это происходит и как я могу получить оригинальный ip после авторизации пользователя?
Конфиги Nginx:
log_format v_proxy 'local_time: $time_local; host: $host; http_x_real_ip:$http_x_real_ip; '
'http_x_forwarded_for:$http_x_forwarded_for; '
'request: "$request"; status: $status; body_bytes_sent: $body_bytes_sent; '
'http_referer: "$http_referer"; http_user_agent: "$http_user_agent";';
server {
listen {{ env "CONTAINER_PORT" }};
root {{ env "PROJECT_DIR" }}/data;
add_header X-Backend-Server $hostname;
add_header X-Project {{ env "PROJECT_NAME" }};
index index.php;
port_in_redirect off;
rewrite ^/(.*)/$ /$1 redirect;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php;
}
{{if env "CI_COMMIT_TAG"}}
add_header Cache-Control s-maxage=3600;
{{end}}
}
}
upstream {{ env "FQDN" }} {
{{$project_name := env "COMPOSE_PROJECT_NAME" }}
{{range service $project_name}}server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=60 weight=1;
{{else}}server 127.0.0.1:65535; # force a 502{{end}}
}
server {
server_name perm.{{ env "FQDN" }} msk.{{ env "FQDN" }} ekat.{{ env "FQDN" }};
listen 80;
rewrite ^(.*)$ https://$server_name$1 permanent;
}
server {
listen 443;
server_name perm.{{ env "FQDN" }} msk.{{ env "FQDN" }} ekat.{{ env "FQDN" }};
location / {
proxy_pass http://{{ env "FQDN" }};
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
access_log {{env "LOG_DIR" }}/{{env "PROJECT_DIR_SUFFIX"}}/access-ssl.log;
error_log {{env "LOG_DIR" }}/{{env "PROJECT_DIR_SUFFIX"}}/nginx-error.log info;
}