色猫咪av在线网址_91精品国产福利在线观看雪梨还会玩转热点_丁香花的视频免费观看_国产手机在线A∨免费视频_十八禁av无码免费网站APP_综合色一区二区亚洲_日韩精品小电影_漂亮人妻熟睡中被公侵犯_全新成人高清无码片_高级厕所偷窥白领美女嘘嘘

當(dāng)前位置: 首頁(yè) >應(yīng)用方案 >技術(shù)應(yīng)用 >

使用Nginx實(shí)現(xiàn)反向代理功能教程

一、關(guān)于nginx簡(jiǎn)介

nginx工具是一款高性能的開(kāi)源 Web 服務(wù)器軟件,也可以用于反向代理、負(fù)載均衡等,并且具有高性能、低內(nèi)存消耗等優(yōu)點(diǎn)。

本文我們主要講解關(guān)于nginx的反向代理功能,并在服務(wù)器上實(shí)現(xiàn)如下功能:

1. 反向代理其他后臺(tái)服務(wù)

2. 通過(guò)域名訪問(wèn)后臺(tái)服務(wù)

前期準(zhǔn)備:

1. 一臺(tái)云服務(wù)器(ubuntu20.04 LTS)

2. 一個(gè)可用的域名

注意:

1. 本文中因服務(wù)器上已經(jīng)提前安裝了nginx,所以第二段(安裝nginx)中使用的系統(tǒng)是一個(gè)全新的本地ubuntu系統(tǒng)來(lái)演示,因此其ip地址為局域網(wǎng)地址。

2. 第三章(nginx反向代理配置)中,使用的系統(tǒng)為云服務(wù)器ubuntu系統(tǒng),其ip地址為公網(wǎng)地址,并且已經(jīng)使用了域名進(jìn)行了解析。

3. 若使用的是CentOS等其他系統(tǒng),則部分管理命令和操作命令可能不相同,但nginx配置和使用邏輯基本相同。

二、安裝nginx

1.更新系統(tǒng)軟件包

sudo apt update

2.安裝nginx

sudo apt install nginx -y

-y選項(xiàng)代表安裝過(guò)程中的詢問(wèn)默認(rèn)為yes

安裝完成后,可以檢查系統(tǒng)中是否多了兩個(gè)目錄文件,/etc/nginx//var/www/html,其中:

/etc/nginx/:包含NGINX 的配置文件,主要用于配置 nginx 服務(wù)器的行為,包括監(jiān)聽(tīng)的端口、反向代理設(shè)置、SSL/TLS 配置等。

/var/www/htmlnginx默認(rèn)的網(wǎng)站根目錄,這里存放了HTML頁(yè)面、JS文件等資源。

在本文中,我們主要講解nginx的反向代理功能,所以/var/www/html作為nginx的web服務(wù)器功能目錄,我們暫時(shí)不進(jìn)行任何修改。

3.驗(yàn)證nginx是否安裝成功

啟動(dòng)nginx服務(wù),并添加為系統(tǒng)啟動(dòng)時(shí)自啟動(dòng):

sudo systemctl start nginx     sudo systemctl enable nginx

查看nginx服務(wù)當(dāng)前狀態(tài):

sudo systemctl status nginx

通過(guò)檢查狀態(tài)可以看出當(dāng)前nginx服務(wù)狀態(tài)為正在running運(yùn)行,并且已經(jīng)enabled添加到了開(kāi)機(jī)自啟動(dòng),通過(guò)下方輸出的日志也可以看出已經(jīng)啟動(dòng)成功。

1 nginx

在瀏覽器使用服務(wù)器ip地址進(jìn)行訪問(wèn)ngxin的web服務(wù)器功能:

192.168.3.168:80 192.168.3.168 #默認(rèn)訪問(wèn)80端口

2  nginx

至此可以證明nginx已經(jīng)安裝成功。

三、nginx反向代理配置

在反向代理功能中,需要了解nginx配置文件中/etc/nginx/sites-available/etc/nginx/sites-enabled兩個(gè)目錄:

sites-available:這個(gè)目錄包含了所有可用的虛擬主機(jī)配置文件。每個(gè)文件通常對(duì)應(yīng)一個(gè)虛擬主機(jī)(一個(gè)網(wǎng)站)的配置。在這里你可以存放所有已經(jīng)創(chuàng)建的虛擬主機(jī)配置文件,無(wú)論是否啟用。

sites-enabled:這個(gè)目錄包含了當(dāng)前啟用的虛擬主機(jī)配置文件的符號(hào)鏈接。在nginx啟動(dòng)時(shí),它只會(huì)讀取 sites-enabled 目錄中的配置文件。

通俗來(lái)講:虛擬主機(jī)是指同一個(gè)物理服務(wù)器上運(yùn)行的不同網(wǎng)站或服務(wù),available目錄存放了我們想要代理的虛擬主機(jī)的配置文件,但這些配置文件是否啟用取決于我們是否將其鏈接到了enabled目錄中,因?yàn)閚ginx服務(wù)只會(huì)讀取enabled目錄來(lái)進(jìn)行設(shè)置,這種做法使得添加、編輯和禁用虛擬主機(jī)配置變得更加簡(jiǎn)單和安全。

本次演示將使用nginx為emqx的管理控制臺(tái)服務(wù)(EMQX Dashboard,端口18083)完成反向代理功能。(若沒(méi)有emqx服務(wù),也可以用于其他任何應(yīng)用程序和服務(wù),道理相同)

1)云服務(wù)器上已經(jīng)安裝并啟動(dòng)了emqx服務(wù),并且通過(guò)ip+端口能夠正常訪問(wèn)EMQX管理控制臺(tái)

3  nginx

2)服務(wù)器ip已綁定域名,且域名已完成了DNS解析

這里需要用到二級(jí)域名,所以對(duì)域名直接進(jìn)行了二級(jí)域名泛解析

4 nginx

3)新增虛擬主機(jī)配置文件

例如,這里我們使用的域名為keeshow.cn,我們想將emqx管理控制臺(tái)服務(wù)通過(guò)mqtt.keeshow.cn來(lái)訪問(wèn)。

新增/etc/nginx/sites-available/mqtt.keeshow.cn配置文件,配置內(nèi)容為:

server {
 listen 80;
 listen [::]:80;
 server_name mqtt.keeshow.cn;
 client_max_body_size 1024m;
 location / {
  proxy_pass http://127.0.0.1:18083;
  proxy_set_header HOST $host;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
}

server塊:定義了一個(gè)虛擬主機(jī),用于處理特定的域名和端口的請(qǐng)求。

listen80:監(jiān)聽(tīng)IPv4 地址上的端口 80(HTTP 默認(rèn)端口),[::]:80:監(jiān)聽(tīng)IPv6 地址上的端口 80。這樣可以同時(shí)處理 IPv4 和 IPv6 的 HTTP 請(qǐng)求。

server_name:指定該虛擬主機(jī)響應(yīng)的域名。只有請(qǐng)求的Host 頭匹配 mqtt.keeshow.cn 時(shí),才會(huì)使用這個(gè)server 塊。

client_max_body_size:設(shè)置客戶端請(qǐng)求體的最大允許大小為1024MB。這在需要上傳大文件時(shí)有用,防止請(qǐng)求因?yàn)檫^(guò)大被拒絕。

location 塊:定義了對(duì)根路徑(/)的請(qǐng)求的處理方式。

proxy_pass:將所有到達(dá)mqtt.keeshow.cn 的請(qǐng)求代理到本地的127.0.0.1:18083。代表nginx接收到請(qǐng)求后,將它轉(zhuǎn)發(fā)給運(yùn)行在本地端口 18083 的 EMQX Dashboard。

proxy_set_header:請(qǐng)求頭設(shè)置相關(guān)。

HOST $host:將客戶端請(qǐng)求的Host 頭傳遞給后端服務(wù)器。$host 變量代表客戶端請(qǐng)求的主機(jī)名。

X-Forwarded-Proto $scheme:將客戶端使用的協(xié)議(HTTP或 HTTPS)傳遞給后端服務(wù)器。$scheme 變量表示請(qǐng)求的協(xié)議。

X-Real-IP $remote_addr:將客戶端的真實(shí)IP 地址傳遞給后端服務(wù)器。$remote_addr 變量表示客戶端的IP 地址。

X-Forwarded-For $proxy_add_x_forwarded_for:將客戶端的原始IP 地址和所有代理的 IP 地址傳遞給后端服務(wù)器。$proxy_add_x_forwarded_for 變量包含客戶端的IP 地址以及所有代理服務(wù)器的 IP 地址。

創(chuàng)建完成后,查看sites-available目錄可以看到新增的配置文件,同理,如果需要新增其他配置文件,也需要?jiǎng)?chuàng)建在該目錄中。

5 nginx

4)鏈接虛擬主機(jī)配置文件

鏈接sites-available目錄中的配置文件鏈接到sites-enabled目錄中:

sudo ln -s /etc/nginx/sites-available/mqtt.keeshow.cn /etc/nginx/sites-enabled/

該鏈接會(huì)在sites-enabled目錄中生成一個(gè)軟連接,并指向了sites-available目錄中的原始配置文件,同理,我們也能在這里看到其他已代理服務(wù)的鏈接,他們都來(lái)自于sites-available目錄。

6 nginx

完成配置后,檢查配置有無(wú)語(yǔ)法錯(cuò)誤:sudo nginx -t

7 nginx


5)重啟nginx

#重新加載nginx配置文件  sudo systemctl reload nginx  

#重新啟動(dòng)nginx  sudo systemctl restart nginx

6)通過(guò)域名訪問(wèn)

完成以上步驟后,代表已經(jīng)配置好了nginx的反向代理,再通過(guò)域名訪問(wèn)EMQX管理控制臺(tái)服務(wù),能夠正常訪問(wèn)。

8 nginx

總結(jié)

1. nginx作為反向代理服務(wù)器,它的反向代理功能可以幫助將客戶端的請(qǐng)求轉(zhuǎn)發(fā)到后端的多個(gè)服務(wù)器或服務(wù)上,并將后端服務(wù)器的響應(yīng)返回給客戶端。

2. 當(dāng)使用域名進(jìn)行反向代理時(shí),客戶端只能看到域名,而無(wú)法直接看到后端服務(wù)器的真實(shí)IP地址。這樣可以隱藏后端服務(wù)器的真實(shí)IP地址,增強(qiáng)了安全性和隱私保護(hù)。


今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!


相關(guān)閱讀:

1、HTTP傳輸協(xié)議與WebSocket協(xié)議詳解對(duì)比

2、為什么有了HTTP傳輸協(xié)議,還需要RPC協(xié)議嗎?

3、HTTP超文本傳輸協(xié)議詳解


4000-330-990

https://www.wjx.cn/jq/84863372.aspx