国产精品一区在线观看你懂的,三级电影网站免费观看,日韩黄色网,大黄网站在线观看

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

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

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

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

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

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

2. 通過域名訪問后臺服務(wù)

前期準(zhǔn)備:

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

2. 一個可用的域名

注意:

1. 本文中因服務(wù)器上已經(jīng)提前安裝了nginx,所以第二段(安裝nginx)中使用的系統(tǒng)是一個全新的本地ubuntu系統(tǒng)來演示,因此其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選項代表安裝過程中的詢問默認(rèn)為yes

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

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

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

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

3.驗證nginx是否安裝成功

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

sudo systemctl start nginx     sudo systemctl enable nginx

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

sudo systemctl status nginx

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

1 nginx

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

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

2  nginx

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

三、nginx反向代理配置

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

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

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

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

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

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

3  nginx

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

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

4 nginx

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

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

新增/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塊:定義了一個虛擬主機(jī),用于處理特定的域名和端口的請求。

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

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

client_max_body_size:設(shè)置客戶端請求體的最大允許大小為1024MB。這在需要上傳大文件時有用,防止請求因為過大被拒絕。

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

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

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

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

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

X-Real-IP $remote_addr:將客戶端的真實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目錄可以看到新增的配置文件,同理,如果需要新增其他配置文件,也需要創(chuàng)建在該目錄中。

5 nginx

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

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

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

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

6 nginx

完成配置后,檢查配置有無語法錯誤:sudo nginx -t

7 nginx


5)重啟nginx

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

#重新啟動nginx  sudo systemctl restart nginx

6)通過域名訪問

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

8 nginx

總結(jié)

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

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


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


相關(guān)閱讀:

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

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

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


點擊撥打: 億佰特官網(wǎng) 4000-330-990