一、什么是反向代理?反向代理的作用?
反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。
當外部客戶機嘗試訪問內容服務器時,會將其送到代理服務器。實際內容位於內容服務器上,在防火牆內部受到安全保護,所以說反向代理服務器也起到了安全防護作用。此外其還可以緩存靜態內容,當靜態內容發生變化時,通過內部通知機制通知反向代理服務器緩存失效,需重新加載,反向代理服務器還可以實現負載均衡。
二、安裝nginx
linux yum或rpm安裝,也可以下載tar.gz包解壓之后make安裝,博主是mac系統,所以直接brew install nginx安裝完成。此外,被代理的是一個應用服務器,這里我們用tomcat即可,簡單方便。
三、實現場景
tomcat端口為另一台機器的8080端口,如下圖所示。

那么我們要實現的是輸入本機的某個端口號能夠訪問到該tomcat內容,那么本機的機器就充當了一個代理服務器的功能。
四、配置
首先我們先進入/usr/local/etc目錄下面,我們可以看到一個nginx的目錄,這個目錄里面基本都是nginx的配置文件。

找到nginx.conf文件,vi打開,然后找到http{},在{}里面加上一句include /usr/local/etc/nginx/reverse-proxy.conf;
這里的意思是引用另外一個代理服務的配置文件,退出vi,在同目錄下面新建reverse-proxy.conf文件。
upstream monitor_server {
server 172.16.17.112:8080;
}
server
{
listen 8900;
server_name www.suibianyuming.cn;
location / {
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;
proxy_pass http://monitor_server;
}
#access_log logs/nagios.xxx123.tk_access.log;
}
按照上面的配置修改即可,如果有域名的可以修改server_name,配置完之后,執行nginx命令啟動之,效果如下。

可以看到,輸入localhost:8900也可以訪問剛剛的112上面的tomcat界面了。
五、總結
nginx在網絡服務這一塊應用還是非常多的,這里僅僅只是一個簡單的端口代理,博主接觸nginx也沒有多久時間,如果有不對的地方還請多多指教,謝謝。
