欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx中proxy_pass使用小結(jié)

 更新時(shí)間:2025年01月10日 11:37:56   作者:福如意如我心意  
本文詳細(xì)介紹了Nginx中proxy_pass指令的基本用法、配置示例及高級(jí)用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

proxy_pass 是 Nginx 中一個(gè)非常重要的指令,用于將請(qǐng)求代理到后端服務(wù)器。本文將詳細(xì)介紹 proxy_pass 的基本用法、配置示例以及一些高級(jí)用法。

1. 基本概念

1.1 proxy_pass 概述

proxy_pass 指令用于將請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器。它可以用于 HTTP 和 Stream 模塊,分別處理 HTTP 請(qǐng)求和 TCP/UDP 流量。

1.2 語法

proxy_pass URL;
  • URL:后端服務(wù)器的地址,可以是 HTTP/HTTPS 地址或 TCP/UDP 地址。

1.3 使用場景

  • HTTP 代理:將 HTTP 請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器。
  • Stream 代理:將 TCP/UDP 流量轉(zhuǎn)發(fā)到后端服務(wù)器。

2. 基本用法

2.1 HTTP 代理

2.1.1 基本示例

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_server;
    }
}

在這個(gè)示例中,所有訪問 example.com 的請(qǐng)求都會(huì)被轉(zhuǎn)發(fā)到 backend_server。

2.1.2 絕對(duì)根路徑 vs 相對(duì)路徑

絕對(duì)根路徑:在 proxy_pass 后面的 URL 以斜杠 / 結(jié)束,表示絕對(duì)根路徑。

location /proxy/ {
    proxy_pass http://127.0.0.1/;
}

例如,訪問 http://example.com/proxy/test.html 會(huì)被轉(zhuǎn)發(fā)到 http://127.0.0.1/test.html。

相對(duì)路徑:在 proxy_pass 后面的 URL 不以斜杠 / 結(jié)束,表示相對(duì)路徑。

location /proxy/ {
    proxy_pass http://127.0.0.1;
}

例如,訪問 http://example.com/proxy/test.html 會(huì)被轉(zhuǎn)發(fā)到 http://127.0.0.1/proxy/test.html。

2.2 Stream 代理

stream {
    upstream backend {
        server 127.0.0.1:8080;
    }

    server {
        listen 12345;
        proxy_pass backend;
    }
}

在這個(gè)示例中,所有連接到 12345 端口的 TCP 流量都會(huì)被轉(zhuǎn)發(fā)到 127.0.0.1:8080

3. 高級(jí)用法

3.1 正則匹配

當(dāng) location 使用正則表達(dá)式時(shí),proxy_pass 不能包含 URI 部分。

location ~ /testc {
    proxy_pass http://127.0.0.1:8801;
}

如果包含 URI 部分,會(huì)導(dǎo)致配置文件解析錯(cuò)誤:

location ~ /testd {
    proxy_pass http://127.0.0.1:8801/;  # 錯(cuò)誤
}

3.2 變量使用

可以使用變量來動(dòng)態(tài)生成轉(zhuǎn)發(fā)地址。

location /novel/ {
    proxy_pass http://book-server/books$request_uri;
}

例如,訪問 http://example.com/novel/three-body.html?page=3 會(huì)被轉(zhuǎn)發(fā)到 http://book-server/books/novel/three-body.html?page=3。

3.3 重定向

Nginx 會(huì)在某些情況下自動(dòng)進(jìn)行 301 重定向,例如當(dāng)請(qǐng)求的 URI 沒有以斜杠 / 結(jié)束,但 Nginx 認(rèn)為這是一個(gè)目錄時(shí)。

location /films/nature/ {
    proxy_pass http://film-server;
}

如果訪問 http://example.com/films/nature,Nginx 會(huì)返回 301 重定向到 http://example.com/films/nature/。

3.4 精確匹配

可以使用精確匹配來避免 301 重定向。

location /films/nature/ {
    proxy_pass http://film-server;
}

location = /films/nature {
    proxy_pass http://film-server;
}

3.5 if 語句

在 location 中使用 if 語句時(shí),proxy_pass 不能包含 URI 部分。

location /google {
    if ($geoip_country_code ~ (RU|CN)) {
        proxy_pass http://www.google.hk;
    }
}

3.6 limit_except

在 limit_except 中使用 proxy_pass 時(shí),不能包含 URI 部分。

location /yongfu/ {
    proxy_pass http://unix:/tmp/backend.socket:/uri/;

    limit_except PUT DELETE {
        proxy_pass http://127.0.0.1:9080;
    }
}

4. 實(shí)際案例

4.1 轉(zhuǎn)發(fā)到多個(gè)后端服務(wù)器

upstream backend_servers {
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
    server 192.168.1.12:8080;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_servers;
    }
}

4.2 轉(zhuǎn)發(fā)到不同路徑

server {
    listen 80;
    server_name example.com;

    location /api/ {
        proxy_pass http://api_server/;
    }

    location /static/ {
        proxy_pass http://static_server/;
    }
}

4.3 轉(zhuǎn)發(fā)到 Unix Domain Socket

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://unix:/tmp/backend.socket:/uri/;
    }
}

到此這篇關(guān)于Nginx中proxy_pass使用小結(jié)的文章就介紹到這了,更多相關(guān)Nginx proxy_pass使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 利用nginx解決cookie跨域訪問的方法

    利用nginx解決cookie跨域訪問的方法

    本篇文章主要介紹了利用nginx解決cookie跨域訪問的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Mac M1 Nginx 配置多站點(diǎn)的實(shí)現(xiàn)

    Mac M1 Nginx 配置多站點(diǎn)的實(shí)現(xiàn)

    這篇文章主要介紹了Mac M1 Nginx 配置多站點(diǎn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Nginx服務(wù)器中的GZip配置參數(shù)詳解

    Nginx服務(wù)器中的GZip配置參數(shù)詳解

    這篇文章主要介紹了Nginx服務(wù)器中的GZip配置參數(shù)詳解,即利用GZip來壓縮網(wǎng)站頁面數(shù)據(jù),需要的朋友可以參考下
    2015-08-08
  • Nginx搭建圖片視頻服務(wù)器的部署步驟

    Nginx搭建圖片視頻服務(wù)器的部署步驟

    這篇文章主要介紹了Nginx搭建圖片視頻服務(wù)器的部署步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • nginx添加http_ssl_module并且配置域名指定端口的操作方法

    nginx添加http_ssl_module并且配置域名指定端口的操作方法

    這篇文章主要介紹了nginx添加http_ssl_module并且配置域名指定端口的操作方法,文末附帶linux下防火墻和開放端口,需要的朋友可以參考下
    2023-11-11
  • Nginx反向代理至go-fastdfs案例講解

    Nginx反向代理至go-fastdfs案例講解

    這篇文章主要介紹了Nginx反向代理至go-fastdfs案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 一文快速了解Nginx超時(shí)設(shè)置

    一文快速了解Nginx超時(shí)設(shè)置

    這篇文章主要給大家介紹了關(guān)于如何通過一文快速了解Nginx超時(shí)設(shè)置的相關(guān)資料,:后端正常的業(yè)務(wù)處理時(shí)間超過了nginx的超時(shí)時(shí)間,導(dǎo)致nginx主動(dòng)返回504,為解決這個(gè)問題,我們網(wǎng)上搜索發(fā)現(xiàn)可以通過調(diào)整這幾個(gè)參數(shù)來調(diào)大nginx的超時(shí)時(shí)間,需要的朋友可以參考下
    2023-11-11
  • nginx實(shí)現(xiàn)負(fù)載均衡和動(dòng)靜分離

    nginx實(shí)現(xiàn)負(fù)載均衡和動(dòng)靜分離

    這篇文章主要為大家詳細(xì)介紹了nginx實(shí)現(xiàn)負(fù)載均衡和動(dòng)靜分離,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Nginx實(shí)現(xiàn)靜態(tài)資源的反向代理實(shí)例

    Nginx實(shí)現(xiàn)靜態(tài)資源的反向代理實(shí)例

    這篇文章主要介紹了Nginx實(shí)現(xiàn)靜態(tài)資源的反向代理實(shí)例,本文通過分析github發(fā)現(xiàn)這個(gè)應(yīng)用,可以避免在https的網(wǎng)站中出現(xiàn)http鏈接,需要的朋友可以參考下
    2015-03-03
  • Nginx批量添加二級(jí)子域名完美方案

    Nginx批量添加二級(jí)子域名完美方案

    這篇文章主要介紹了Nginx批量添加二級(jí)子域名完美方案,本文講解使用正則表達(dá)式批量匹配指定域名的二級(jí)域名虛擬主機(jī),需要的朋友可以參考下
    2015-04-04

最新評(píng)論