溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用nginx怎么實(shí)現(xiàn)反向代理

發(fā)布時間:2021-06-21 15:48:21 來源:億速云 閱讀:164 作者:Leah 欄目:大數(shù)據(jù)

本篇文章為大家展示了使用nginx怎么實(shí)現(xiàn)反向代理,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

什么是反向代理?

  • 代理:通過客戶機(jī)的配置,實(shí)現(xiàn)讓一臺服務(wù)器(代理服務(wù)器)代理客戶機(jī),客戶的所有請求都交給代理服務(wù)器處理。

  • 反向代理:用一臺服務(wù)器,代理真實(shí)服務(wù)器,用戶訪問時,不再是訪問真實(shí)服務(wù)器,而是代理服務(wù)器。

nginx可以當(dāng)做反向代理服務(wù)器來使用:

  • 我們需要提前在nginx中配置好反向代理的規(guī)則,不同的請求,交給不同的真實(shí)服務(wù)器處理

  • 當(dāng)請求到達(dá)nginx,nginx會根據(jù)已經(jīng)定義的規(guī)則進(jìn)行請求的轉(zhuǎn)發(fā),從而實(shí)現(xiàn)路由功能

利用反向代理,就可以解決我們前面所說的端口問題,如圖: 使用nginx怎么實(shí)現(xiàn)反向代理

安裝和使用

安裝

安裝非常簡單,把課前資料提供的nginx直接解壓即可,綠色免安裝,舒服! 使用nginx怎么實(shí)現(xiàn)反向代理

下載nginx:http://nginx.org/en/download.html

我們在本地安裝一臺nginx: 使用nginx怎么實(shí)現(xiàn)反向代理

解壓后,目錄結(jié)構(gòu): 使用nginx怎么實(shí)現(xiàn)反向代理

  1. conf:配置目錄

  2. contrib:第三方依賴

  3. html:默認(rèn)的靜態(tài)資源目錄,類似于tomcat的webapps

  4. logs:日志目錄

  5. nginx.exe:啟動程序。可雙擊運(yùn)行,但不建議這么做。

反向代理配置

示例: 使用nginx怎么實(shí)現(xiàn)反向代理

nginx中的每個server就是一個反向代理配置,可以有多個server

完整配置:

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
   
    keepalive_timeout  65;

    gzip  on;
	server {
        listen       80;
        server_name  manage.leyou.com;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
			proxy_pass http://127.0.0.1:9001;
			proxy_connect_timeout 600;
			proxy_read_timeout 600;
        }
    }
	server {
        listen       80;
        server_name  api.leyou.com;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
			proxy_pass http://127.0.0.1:10010;
			proxy_connect_timeout 600;
			proxy_read_timeout 600;
        }
    }
}

使用

nginx可以通過命令行來啟動,操作命令:

  • 啟動:start nginx.exe

  • 停止:nginx.exe -s stop

  • 重新加載:nginx.exe -s reload

啟動過程會閃爍一下,啟動成功后,任務(wù)管理器中會有兩個nginx進(jìn)程: 使用nginx怎么實(shí)現(xiàn)反向代理

測試

啟動nginx,然后用域名訪問后臺管理系統(tǒng): 使用nginx怎么實(shí)現(xiàn)反向代理 現(xiàn)在實(shí)現(xiàn)了域名訪問網(wǎng)站了,中間的流程是怎樣的呢? 使用nginx怎么實(shí)現(xiàn)反向代理

  1. 瀏覽器準(zhǔn)備發(fā)起請求,訪問 http://mamage.leyou.com,但需要進(jìn)行域名解析

  2. 優(yōu)先進(jìn)行本地域名解析,因為我們修改了hosts,所以解析成功,得到地址:127.0.0.1

  3. 請求被發(fā)往解析得到的ip,并且默認(rèn)使用80端口: http://127.0.0.1:80 本機(jī)的nginx一直監(jiān)聽 80 端口,因此捕獲這個請求

  4. nginx中配置了反向代理規(guī)則,將 manage.leyou.com 代理到 127.0.0.1:9001,因此請求被轉(zhuǎn)發(fā)

  5. 后臺系統(tǒng)的webpack server監(jiān)聽的端口是9001,得到請求并處理,完成后將響應(yīng)返回到nginx

  6. nginx將得到的結(jié)果返回到瀏覽器

上述內(nèi)容就是使用nginx怎么實(shí)現(xiàn)反向代理,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI