Mamy zestaw dwóch serwerów:
nginx – przekazujący ruch do wewnętrznych serwerów (proxy)
nginx – hostujący serwis
Konfiguracja na dla domeny iworks.pl na pierwszym z nich wygląda następująco:
server { server_name iworks.pl www.iworks.pl; listen 80; access_log /var/log/nginx/iworks.pl.access.log; error_log /var/log/nginx/iworks.pl.error.log; location / { proxy_pass ; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Informacja o prawdziwym IP użytkownika jest przekazywana dalej w linijce: proxy_set_header X-Real-IP $remote_addr;
W celu wykorzystania go na drugim serwerze, tym który hostuje stronę, należy w pliku /etc/nginx/fastcgi_params
Zmienić linijkę fastcgi_param REMOTE_ADDR $remote_addr; na fastcgi_param REMOTE_ADDR $http_x_real_ip; dzięki czemu na serwerze hostującym adres użytkownika oglądającego stronę będzie „prawdziwy”, zamiast być adresem serwera proxującego.
Comments