Nginx 反向代理最全詳解 -圖文全面總結-

大家好,我是 mikechen。

Nginx 反向代理大型網站必備的,也是大廠經常考察的,下面我就全面來詳解 Nginx 反向代理 @mikechen

正向代理

正向代理最大的特點是:客戶端非常明確要訪問的服務器地址,服務器只清楚請求來自哪個代理服務器,而不清楚來自哪個具體的客戶端,正向代理模式屏蔽或者隱藏了真實客戶端信息。

例如:在大陸訪問 www.google.com,我們需要一個代理服務器,我們通過代理服務器去訪問谷歌,這個過程就是正向代理。

來看個示意圖:

我們可以通過這種方式,訪問原來無法訪問的資源,比如:Google。

反向代理

反向代理,客戶端對代理是無感知的,因爲客戶端不需要任何配置就可以訪問,我們只需要將請求發送到反向代理服務器。

來看個示意圖:

由反向代理服務器去選擇目標服務器獲取數據後,在返回給客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,暴露的是代理服務器地址,隱藏了真實服務器 IP 地址。

反向代理作用

反向代理有以下作用:

1. 保護網站安全

因爲任何來自 Internet 的請求都必須先經過代理服務器。

2. 加速 Web 請求

提高訪問速度:當經過首次鏈接之後,代理服務器會將此次數據緩存下來,當下次用戶來訪問時,可以優先在緩存中查找,提高了訪問速度。

3. 實現負載均衡

當一臺服務器訪問量短時間不能承受時就會發生奔潰,所以可以按照需求使用多臺服務器組成一個服務器集羣來平均分擔數據訪問的壓力,給用戶帶來良好的體驗。

目前市面上,主流的負載均衡方案,硬件設備有 F5,軟件方案有四層負載均衡的 LVS,七層負載均衡的 Nginx 等。

Nginx 配置文件

在配置 Nginx 反向代理之前,我們要熟知它的配置文件,因爲反向代理會涉及到其中的具體配置。

Nginx 配置文件所在位置:nginx/conf/nginx.conf。

1.Nginx 配置結構

main        # 全局配置,對全局生效
├── events  # 配置影響 nginx 服務器或與用戶的網絡連接
├── http    # 配置代理,緩存,日誌定義等絕大多數功能和第三方模塊的配置
│   ├── upstream # 配置後端服務器具體地址,負載均衡配置不可或缺的部分
│   ├── server   # 配置虛擬主機的相關參數,一個 http 塊中可以有多個 server 塊
│   ├── server
│   │   ├── location  # server 塊可以包含多個 location 塊,location 指令用於匹配 uri
│   │   ├── location
│   │   └── ...
│   └── ...
└── ...

2.Nginx 配置含義

Nginx 反向代理配置

1. 目標

訪問 http://ip,訪問到的是 Tomcat 的主頁面 http://ip:8080。

2. 環境

Nginx+JDK8+Tomcat

3. 配置文件

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        #server_name localhost;
        server_name  192.168.71.167;
        location / {
            root   html;
            #添加下面的一句話
            proxy_pass http://127.0.0.1:8080;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

4. 重新加載 Nginx 配置文件

/usr/local/nginx/sbin/nginx -s reload

5. 測試

訪問:http://192.168.71.167/,看到的是 Tomcat 的首頁。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/e_ipvAZ-LIYCgxpTXzJrtg