Краткая заметка по установке nginx прокси сервера, для скрытия IP-адреса backend'а (20.20.20.20), Frontend имеет IP 10.10.10.10.
Установим nginx:
# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
# yum install nginx
# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
# vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name default_server;
location / {
access_log /var/log/nginx/access.log;
proxy_pass http://20.20.20.20;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# nginx -t
# /etc/init.d/nginx restart
Добавим в файл hosts например запись:
10.10.10.10 test.com www.test.com
Теперь давайте проверим, скрываем ли мы таким образом IP-адрес backend'а:
Запустим tcpdump:
# tcpdump -vv -s0 tcp port 80 -w /tmp/outgoing.pcap
А в другом терминале сделаем curl:
# curl http://test.com
И сразу выключим наш tcpdump. Теперь полученный pcap файл удобно посмотреть через tshark:
# tshark /tmp/outgoing.pcap
3 1.563002 192.168.0.102 -> 10.10.10.10 TCP 74 55936 > http [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=5556038 TSecr=0 WS=128
4 1.768934 10.10.10.10 -> 192.168.0.102 TCP 74 http > 55936 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=9957164 TSecr=5556038 WS=32
5 1.769023 192.168.0.102 -> 10.10.10.10 TCP 66 55936 > http [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=5556090 TSecr=9957164
6 1.769213 192.168.0.102 -> 10.10.10.10 HTTP 149 GET / HTTP/1.1
7 1.975268 10.10.10.10 -> 192.168.0.102 TCP 66 http > 55936 [ACK] Seq=1 Ack=84 Win=14496 Len=0 TSval=9957370 TSecr=5556090
8 2.104264 10.10.10.10 -> 192.168.0.102 HTTP 1385 HTTP/1.1 200 OK (text/html)
9 2.104328 192.168.0.102 -> 10.10.10.10 TCP 66 55936 > http [ACK] Seq=84 Ack=1320 Win=31872 Len=0 TSval=5556174 TSecr=9957498
10 2.105242 192.168.0.102 -> 10.10.10.10 TCP 66 55936 > http [FIN, ACK] Seq=84 Ack=1320 Win=31872 Len=0 TSval=5556174 TSecr=9957498
11 2.311546 10.10.10.10 -> 192.168.0.102 TCP 66 http > 55936 [FIN, ACK] Seq=1320 Ack=85 Win=14496 Len=0 TSval=9957706 TSecr=5556174
12 2.311627 192.168.0.102 -> 10.10.10.10 TCP 66 55936 > http [ACK] Seq=85 Ack=1321 Win=31872 Len=0 TSval=5556225 TSecr=9957706
Как видим, IP-адрес backend'а никак не палится, чего и хотелось добиться.
Установим nginx:
# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
# yum install nginx
# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
# vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name default_server;
location / {
access_log /var/log/nginx/access.log;
proxy_pass http://20.20.20.20;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# nginx -t
# /etc/init.d/nginx restart
Добавим в файл hosts например запись:
10.10.10.10 test.com www.test.com
Теперь давайте проверим, скрываем ли мы таким образом IP-адрес backend'а:
Запустим tcpdump:
# tcpdump -vv -s0 tcp port 80 -w /tmp/outgoing.pcap
А в другом терминале сделаем curl:
# curl http://test.com
И сразу выключим наш tcpdump. Теперь полученный pcap файл удобно посмотреть через tshark:
# tshark /tmp/outgoing.pcap
3 1.563002 192.168.0.102 -> 10.10.10.10 TCP 74 55936 > http [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=5556038 TSecr=0 WS=128
4 1.768934 10.10.10.10 -> 192.168.0.102 TCP 74 http > 55936 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=9957164 TSecr=5556038 WS=32
5 1.769023 192.168.0.102 -> 10.10.10.10 TCP 66 55936 > http [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=5556090 TSecr=9957164
6 1.769213 192.168.0.102 -> 10.10.10.10 HTTP 149 GET / HTTP/1.1
7 1.975268 10.10.10.10 -> 192.168.0.102 TCP 66 http > 55936 [ACK] Seq=1 Ack=84 Win=14496 Len=0 TSval=9957370 TSecr=5556090
8 2.104264 10.10.10.10 -> 192.168.0.102 HTTP 1385 HTTP/1.1 200 OK (text/html)
9 2.104328 192.168.0.102 -> 10.10.10.10 TCP 66 55936 > http [ACK] Seq=84 Ack=1320 Win=31872 Len=0 TSval=5556174 TSecr=9957498
10 2.105242 192.168.0.102 -> 10.10.10.10 TCP 66 55936 > http [FIN, ACK] Seq=84 Ack=1320 Win=31872 Len=0 TSval=5556174 TSecr=9957498
11 2.311546 10.10.10.10 -> 192.168.0.102 TCP 66 http > 55936 [FIN, ACK] Seq=1320 Ack=85 Win=14496 Len=0 TSval=9957706 TSecr=5556174
12 2.311627 192.168.0.102 -> 10.10.10.10 TCP 66 55936 > http [ACK] Seq=85 Ack=1321 Win=31872 Len=0 TSval=5556225 TSecr=9957706
Как видим, IP-адрес backend'а никак не палится, чего и хотелось добиться.
Комментариев нет:
Отправить комментарий