最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Nginx實現(xiàn)反向代理、配置負載均衡詳解

 更新時間:2026年02月02日 10:33:55   作者:吞吞吐吐大魔王  
Nginx是一款輕量級的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,其特點是占有內(nèi)存少,并發(fā)能力強,文章詳細介紹了Nginx的安裝、配置、命令、靜態(tài)資源部署、反向代理和負載均衡等具體應(yīng)用

1. Nginx 概述

1.1 Nginx 介紹

Nginx 是一款輕量級的 Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。其特點是占有內(nèi)存少,并發(fā)能力強,實際上 Nginx 的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,國內(nèi)使用 Nginx 的網(wǎng)站有:百度、京東、淘寶、騰訊等。

Nginx 官網(wǎng):https://nginx.org/

1.2 Nginx 下載和安裝

Nginx 官網(wǎng)下載地址:https://nginx.org/en/download.html

Linux 安裝 Nginx 過程:

安裝依賴包

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

下載 Nginx 安裝包

wget https://nginx.org/download/nginx-1.16.1.tar.gz

# 如果未安裝 wget 命令,則可以通過以下命令進行安裝
yum install wget

解壓

tar -zxvf nginx-1.16.1.tar.gz

配置 Nginx 安裝目錄為 /usr/local/nginx

# 先創(chuàng)建安裝的目錄
mkdir -p /usr/local/nginx

# 配置安裝目錄
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx

如果不配置安裝的路徑,那么安裝后可執(zhí)行文件默認存放在 /usr/local/bin,庫文件默認存放在 /usr/local/lib,配置文件默認存放在 /usr/local/etc,其他的資源文件存放在 /usr/local/share。

編譯和安裝 Nginx

make && make install

通過以上步驟,Nginx 就已經(jīng)安裝好了,切換到其安裝目錄我們就能看到以下幾個目錄

1.3 Nginx 目錄結(jié)構(gòu)

安裝完 Nginx 后,我們就能看到以下幾個目錄:

目錄說明
conf存放配置文件
html存放靜態(tài)文件(html、css、js)
logs存放日志文件
sbin存放腳本文件

在這些目錄中還有幾個重要的文件:

文件說明
conf/nginx.confNginx 配置文件
sbin/nginx二進制文件,用于啟動、停止 Nginx 服務(wù)

Nginx 目錄和文件總覽:

2. Nginx 命令

命令說明
./nginx -v查看 Nginx 版本
./nginx -t檢查配置文件正確性
./nginx啟動 Nginx 服務(wù)
./nginx -s stop停止 Nginx 服務(wù)
./nginx -s reload重新加載配置文件(當修改 Nginx 配置文件后,需要重新加載才能生效)

以上命令都需要進入 Nginx 的安裝目錄的 sbin 目錄才能執(zhí)行,因此執(zhí)行這些命令的時候其實是有點麻煩的。

為了解決這個問題,能夠在任何路徑都能執(zhí)行這些命令,可以將 Nginx 的二進制文件的路徑配置到系統(tǒng)的環(huán)境變量中。

配置方式:

進入 /etc/profile 文件進行編輯

vim /etc/profile

在 Path 變量后面追加 nginx 的 sbin 路徑

讓修改后的 /etc/profile 立即生效

source /etc/profile

3. Nginx 配置文件結(jié)構(gòu)

Nginx 配置文件(conf/nginx.conf)整體分為三部分:

全局塊:和 Nginx 運行相關(guān)的全局配置

events 塊:和網(wǎng)絡(luò)連接相關(guān)的配置

http 塊:代理、緩存、日志記錄、虛擬主機配置

  • http 全局塊

  • server 塊

  • server 塊又可以分成 server 全局塊和 location 塊。
  • 注意:http 中可以配置多個 server 塊,每個 server 塊又可以配置多個 location 塊。

4. Nginx 具體應(yīng)用

4.1 部署靜態(tài)資源

Nginx 可以作為靜態(tài) web 服務(wù)器來部署靜態(tài)資源。靜態(tài)資源指在服務(wù)端真實存在并且能夠直接展示的一些文件,比如 html、css、hs、圖片、視頻等資源。

相對于 Tomcat,Nginx 處理靜態(tài)資源的能力更加高效,所以在生產(chǎn)環(huán)境下,一般都會將靜態(tài)資源部署到 Nginx 中。將靜態(tài)資源部署到 Nginx 非常簡單,只需要將文件復(fù)制到 Nginx 安裝目錄的 html 目錄即可。

除此之外,如果有需要還可以對 Nginx 的配置文件的 http 塊的 server 塊的參數(shù)進行指定的修改,參數(shù)說明如下:

4.2 反向代理

4.2.1 介紹

代理就像是我們?nèi)ベ徺I海外的東西,找了個中間人幫我們?nèi)ベI物品并且?guī)Я嘶貋怼?/p>

從系統(tǒng)的角度來說,直接訪問就是瀏覽器的請求直接到了最終的服務(wù)器,中間沒有經(jīng)過任何的代理服務(wù)器,否則就是通過了代理的形式去訪問了服務(wù)器。

代理(proxy)又分為正向代理(forward proxy)和反向代理(reverse proxy)。

正向代理(forward proxy):

是一個位于客戶端和原始服務(wù)器之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個請求并指定目標(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端。

一個正向代理服務(wù)器并沒有直接響應(yīng)請求的能力,就像商店不生產(chǎn)方便面一樣,它不過是把請求轉(zhuǎn)發(fā)到最終的網(wǎng)頁服務(wù)器上,再把后者的響應(yīng)再轉(zhuǎn)發(fā)給請求者。

  • 那么瀏覽器只知道最終瀏覽器的地址,但是如何知道代理服務(wù)器在哪呢?
  • 這個需要我們主動的告訴瀏覽器,即主動配置代理服務(wù)器。

正向代理的典型用途是為在防火墻內(nèi)的局域網(wǎng)客戶端提供訪問 Internet 的途徑。

反向代理(reverse proxy):

反向代理服務(wù)器位于用戶于目標服務(wù)器之間,但是對于用戶而言,反向代理服務(wù)器就相當于目標服務(wù)器,即用戶直接訪問反向代理服務(wù)器就可以獲得目標服務(wù)器的資源,反向代理服務(wù)器負責(zé)將請求轉(zhuǎn)發(fā)給目標服務(wù)器。

用戶不需要知道目標服務(wù)器的地址,也無須在用戶端做任何設(shè)定。

反向代理與正向代理的一個很大區(qū)別就是,它不需要客戶端去做什么配置,并沒有什么配置代理服務(wù)器的操作。

如果說正向代理是主動配置,主動走代理,那么反向代理則是”被代理“。從這點上看,反向代理有時又稱為“透明代理”,也即是瀏覽器都不知道自己被代理了,瀏覽器以為發(fā)給它響應(yīng)的就是最終的網(wǎng)頁服務(wù)器,其實不過是個“代理”。

4.2.2 配置反向代理

配置反向代理只需要修改 nginx.conf 配置文件即可,需要配置的參數(shù)如下:

server {
    listen 81;	# 監(jiān)聽端口
    server_name localhost;	# 服務(wù)器名稱
    location / {
        proxy_pass http://目標服務(wù)器IP:端口號; #反向代理配置,將請求轉(zhuǎn)發(fā)到指定服務(wù)
    }
}

配置后記得重新加載配置文件。

4.3 負載均衡

4.3.1 介紹

早期的網(wǎng)站流量和業(yè)務(wù)功能都比較簡單,單臺服務(wù)器就可以滿足基本需求,但是隨著互連網(wǎng)的發(fā)展,業(yè)務(wù)流量越來越大并且業(yè)務(wù)邏輯也越來越復(fù)雜,單臺服務(wù)器的性能及單點故障問題就凸顯出來了,因此需要多臺服務(wù)器組成應(yīng)用集群,進行性能的水平擴展以及避免單點故障出現(xiàn)。

  • 應(yīng)用集群:將同一應(yīng)用部署到多臺機器上,組成應(yīng)用集群,接收負載均衡器分發(fā)的請求,進行業(yè)務(wù)處理并響應(yīng)返回數(shù)據(jù)。
  • 負載均衡器:將用戶請求根據(jù)對應(yīng)的負載均衡算法分發(fā)到應(yīng)用集群中的一臺服務(wù)器進行處理。

4.3.2 配置負載均衡

配置負載均衡只需要修改 nginx.conf 配置文件即可,需要配置的參數(shù)如下:

upstream targetserver {		# upstream 指令可以定義一組服務(wù)器
    server 服務(wù)器1IP:端口號;
    server 服務(wù)器2IP:端口號;
}

server {
    listen 8080;	# 監(jiān)聽端口
    server_name localhost;	# 服務(wù)器名稱
    location / {
        proxy_pass http://targetserver;	# 請求轉(zhuǎn)發(fā)的一組服務(wù)器的名稱
    }
}

配置后記得重新加載配置文件。

4.3.3 負載均衡策略

名稱說明
輪詢默認方式
weight權(quán)重方式,權(quán)重越大分配的機率越高
ip_hash依據(jù) ip 分配方式
least_conn依據(jù)最少連接方式
url_hash依據(jù) url 分配方式
fair依據(jù)響應(yīng)時間方式

輪詢:默認方式,當刷新瀏覽器時,會發(fā)現(xiàn)目標服務(wù)器是被輪流著訪問。

upstream targetserver {		# upstream 指令可以定義一組服務(wù)器
    server 服務(wù)器1IP:端口號;
    server 服務(wù)器2IP:端口號;
}

weight:通過分配權(quán)重的方式,權(quán)重越大分配的機率越高。

upstream targetserver {		# upstream 指令可以定義一組服務(wù)器
    server 服務(wù)器1IP:端口號 weight=10;
    server 服務(wù)器2IP:端口號 weight=5;
}

ip_hash:通過客戶端的 ip 地址經(jīng)過哈希算法來分配到一個服務(wù)器上,之后同一個 ip 訪問時都會固定的訪問一個服務(wù)器。

通過 ip_hash 能夠解決 Session 丟失的問題,即用戶第一次在A服務(wù)器登陸后,如果下次請求訪問到B服務(wù)器的話,那么登錄信息則會丟失。

upstream targetserver {		# upstream 指令可以定義一組服務(wù)器
	ip_hash;
    server 服務(wù)器1IP:端口號;
    server 服務(wù)器2IP:端口號;
}

least_conn:分配服務(wù)器中最少連接的那個。

upstream targetserver {		# upstream 指令可以定義一組服務(wù)器
	least_conn;
    server 服務(wù)器1IP:端口號;
    server 服務(wù)器2IP:端口號;
}

url_hash:按照訪問的 url 經(jīng)過哈希算法來分配到一個服務(wù)器上,之后同一個 url 訪問都會訪問到固定的一個服務(wù)器。

適合后端服務(wù)器作為緩存時使用。

upstream targetserver {		# upstream 指令可以定義一組服務(wù)器
	hash $request_uri;
	hash_methond cr32;	# hash 算法
    server 服務(wù)器1IP:端口號;
    server 服務(wù)器2IP:端口號;
}

fair:根據(jù)后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的分配優(yōu)先。

upstream targetserver {		# upstream 指令可以定義一組服務(wù)器
	fair;
    server 服務(wù)器1IP:端口號;
    server 服務(wù)器2IP:端口號;
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • nginx部署多套vue項目,共用一套后端配置過程

    nginx部署多套vue項目,共用一套后端配置過程

    文章介紹了如何在一套后端服務(wù)下部署多個Web應(yīng)用,包括H5頁面和后臺管理端的配置方法,涵蓋了前端打包、路由配置、Java打包、Nginx配置以及訪問路徑的設(shè)置
    2025-12-12
  • shell腳本實戰(zhàn)之部署nginx腳本實例

    shell腳本實戰(zhàn)之部署nginx腳本實例

    最近自己編寫的Linux一鍵部署腳本,可以一鍵部署Nginx,分享給大家,這篇文章主要給大家介紹了關(guān)于shell腳本實戰(zhàn)之部署nginx腳本的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Nginx 安全加固的幾種方法

    Nginx 安全加固的幾種方法

    本文詳細介紹了Nginx服務(wù)器的安全加固方案,重點圍繞權(quán)限設(shè)置、配置優(yōu)化和系統(tǒng)防護三個方面,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • 詳解 Nginx 301重定向的配置

    詳解 Nginx 301重定向的配置

    這篇文章主要介紹了詳解 Nginx 301重定向的配置的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • CentOS7安裝Nginx并配置自動啟動的方法步驟

    CentOS7安裝Nginx并配置自動啟動的方法步驟

    這篇文章主要介紹了CentOS7安裝Nginx并配置自動啟動的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • Nginx通過nginx-rtmp-module模塊搭建流媒體服務(wù)器實現(xiàn)直播

    Nginx通過nginx-rtmp-module模塊搭建流媒體服務(wù)器實現(xiàn)直播

    近日有客戶咨詢想用Nginx搭建流媒體服務(wù)器實現(xiàn)直播,方便他們打造自己的平臺,經(jīng)過各種測試發(fā)現(xiàn)如下文章不錯,特分享給需要的朋友
    2023-10-10
  • 針對OpenSSL安全漏洞調(diào)整Nginx服務(wù)器的方法

    針對OpenSSL安全漏洞調(diào)整Nginx服務(wù)器的方法

    這篇文章主要介紹了針對OpenSSL漏洞調(diào)整Nginx服務(wù)器的方法,2014年爆出的SSL安全漏洞震驚了全世界,需要的朋友可以參考下
    2015-06-06
  • Nginx重定向的配置實例

    Nginx重定向的配置實例

    基于Nginx的服務(wù)器需要設(shè)置下重定向,下面的b2c就是相對應(yīng)的目錄,需要的朋友可以參考下。
    2010-07-07
  • nginx配置同一域名同一端口下部署多個vue項目

    nginx配置同一域名同一端口下部署多個vue項目

    本文主要介紹了nginx配置同一域名同一端口下部署多個vue項目,可以根據(jù)根路徑不同分別代理訪問不同項目,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 使用nginx.exe時閃退的原因和解決方法

    使用nginx.exe時閃退的原因和解決方法

    最近使用老師給的nginx.exe時,點擊nginx.exe突然屏幕就閃一下,經(jīng)過一番排查,發(fā)現(xiàn)是端口被占用所導(dǎo)致的,所以本文就給大家講講端口被占用時的解決方法詳細步驟,需要的朋友可以參考下
    2023-07-07

最新評論

莱阳市| 兰考县| 颍上县| 濉溪县| 三河市| 罗平县| 句容市| 三亚市| 通城县| 西盟| 虎林市| 湖南省| 新郑市| 云南省| 敖汉旗| 东明县| 临桂县| 天峻县| 桃园市| 东辽县| 固镇县| 武义县| 南康市| 华蓥市| 沾益县| 高安市| 喀什市| 梅州市| 高碑店市| 临高县| 青田县| 沈丘县| 治县。| 平和县| 海伦市| 七台河市| 彰化市| 潮安县| 兰坪| 上犹县| 理塘县|