nginx正反向代理配置詳解
一、nginx正向代理介紹及配置
代理伺服器系統環境為:centos7.3
nginx代理伺服器為:192.168.10.10
測試用戶端為區域網路内任意windows電腦或Linux電腦
nginx不僅可以做反向代理,還能用作正向代理來進行上網等功能。如果把區域網路外的Internet想象成一個巨大的資源庫,則區域網路中的用戶端要通路Internet,則需要通過代理伺服器來通路,這種代理服務就稱為正向代理(也就是大家常說的,通過正向代理進行上網功能)
現在的網站基本上都是https,要解決既能通路http80端口也能通路https443端口的網站,需要配置兩個SERVER節點,一個處理HTTP轉發,另一個處理HTTPS轉發,而用戶端都通過HTTP來通路代理,通過通路代理不同的端口,來區分HTTP和HTTPS請求。
[root@localhost ~]# vim /usr/local/nginx-1.12.1/conf/nginx.conf
server {
resolver 114.114.114.114; #指定DNS伺服器IP位址
listen 80;
location / {
proxy_pass http://$host$request_uri; #設定代理伺服器的協定和位址
proxy_set_header HOST $host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_next_upstream error timeout invalid_header http_502;
}
}
resolver 114.114.114.114; #指定DNS伺服器IP位址
listen 443;
proxy_pass https://$host$request_uri; #設定代理伺服器的協定和位址
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_next_upstream error timeout invalid_header http_502;
[root@localhost ~]# /usr/local/nginx-1.12.1/sbin/nginx -s reload
http的通路測試
[root@localhost ~]# curl -I --proxy 192.168.10.10:80 www.baidu.com
HTTP/1.1 200 OK
Server: nginx/1.12.1
Date: Mon, 11 Jun 2018 15:37:47 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 31 May 2018 09:28:16 GMT
Connection: keep-alive
ETag: "5b0fc030-264"
Accept-Ranges: bytes
https的通路測試
[root@localhost ~]# curl -I --proxy 192.168.10.10:443 www.baidu.com
Date: Mon, 11 Jun 2018 15:38:07 GMT
Content-Length: 277
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Etag: "575e1f5c-115"
Last-Modified: Mon, 13 Jun 2016 02:50:04 GMT
Pragma: no-cache
[root@localhost ~]# vim /etc/profile
export http_proxy='192.168.10.10:80'
export http_proxy='192.168.10.10:443'
export ftp_proxy='192.168.10.10:80'
[root@localhost ~]# source /etc/profile
[root@localhost ~]# curl -I www.baidu.com:80
Date: Mon, 11 Jun 2018 16:10:18 GMT
[root@localhost ~]# curl -I www.baidu.com:443
Date: Mon, 11 Jun 2018 16:10:27 GMT
Etag: "575e1f59-115"
Last-Modified: Mon, 13 Jun 2016 02:50:01 GMT
上面結果就說明我們的服務端nginx正向代理和用戶端使用nginx做為全局代理設定成功。
二、nginx反向代理介紹及配置
系統環境:centos7.3
代理伺服器(nginx):192.168.10.10
後端伺服器(apache):192.168.10.20
測試機:随便一台Linux或Windows都可以
反向代理:指将自己作為代理伺服器來接受Internet上的請求,然後将請求轉發給後端的伺服器,并将結果傳回給用戶端。而nginx是一個高性能的http和反向代理伺服器,且占用記憶體極少,現在很多大型公司都在用它。
加到nginx配置檔案http标簽裡面
upstream test {
server 192.168.10.20;
listen 80;
server_name 192.168.10.20;
index index.html index.htm;
location / {
proxy_pass http://test;
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo '192.168.10.20' > /var/www/html/index.html
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# curl 192.168.10.10
192.168.10.20