濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Nginx域名轉(zhuǎn)發(fā)使用場(chǎng)景代碼實(shí)例

Nginx域名轉(zhuǎn)發(fā)使用場(chǎng)景代碼實(shí)例

熱門(mén)標(biāo)簽:江蘇自動(dòng)外呼系統(tǒng)一般多少錢(qián) 云南云電銷(xiāo)機(jī)器人招商 長(zhǎng)沙回?fù)芡夂粝到y(tǒng) 山東電信外呼系統(tǒng)靠譜嗎 信貸電銷(xiāo)機(jī)器人系統(tǒng) 400 電話 申請(qǐng)費(fèi)用 比較穩(wěn)定的外呼系統(tǒng) ai電話機(jī)器人營(yíng)銷(xiāo) 鸚鵡螺號(hào)航海地圖標(biāo)注時(shí)間

場(chǎng)景1:因服務(wù)器限制,所以只對(duì)外開(kāi)放了一個(gè)端口,但是需要請(qǐng)求不同的外網(wǎng)環(huán)境,所以在中轉(zhuǎn)服務(wù)器上用nginx做了一次轉(zhuǎn)發(fā)

實(shí)現(xiàn):

server {
 listen  8051;
 server_name localhost;
 
 location /license/ {
      proxy_pass http://xxx.xxx.xxx.xxx:8058/;
 }
 
 location / {
      proxy_pass http://xxx.xxx.xxx.xxx:8051/;  } }

特別注意:

  敲黑板:此處如果涉及到文件上傳的轉(zhuǎn)發(fā),相應(yīng)在server_name下添加client_max_body_size 100m;

  域名轉(zhuǎn)發(fā)的地址,proxy_pass后面必須跟"/",否則會(huì)造成轉(zhuǎn)發(fā)不正常

  在nginx中配置proxy_pass代理轉(zhuǎn)發(fā)時(shí),如果在proxy_pass后面的url加/,表示絕對(duì)根路徑;
  如果沒(méi)有/,表示相對(duì)路徑,把匹配的路徑部分也給代理走。

  假設(shè)下面四種情況分別用 http://192.168.1.1/proxy/aerchi.html 進(jìn)行訪問(wèn)。

  第一種:

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

    代理到URL:http://127.0.0.1/aerchi.html

  第二種(相對(duì)于第一種,最后少一個(gè) / )

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

    代理到URL:http://127.0.0.1/proxy/aerchi.html

  第三種:

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

    代理到URL:http://127.0.0.1/aaa/aerchi.html

  第四種(相對(duì)于第三種,最后少一個(gè) / )  

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

    代理到URL:http://127.0.0.1/aaaaerchi.html

場(chǎng)景2:因業(yè)務(wù)需要,一套前段代碼需要映射到兩個(gè)后臺(tái)地址上,所以需要在接口上進(jìn)行區(qū)分轉(zhuǎn)發(fā),同時(shí)轉(zhuǎn)發(fā)時(shí)需要把區(qū)分標(biāo)志去掉

實(shí)現(xiàn):

server {
  listen  0.0.0.0:8204;
  server_name localhost;
  # 靜態(tài)頁(yè)面目錄
  root   E:\xxxxxxx;
  # 默認(rèn)首頁(yè)
  index   /index.html;
  proxy_set_header Host $http_host;       
  proxy_set_header X-Real-IP $remote_addr;       
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  #proxy_cookie_path /* /*;
  client_max_body_size  100m;
    
  location ~*/wx/(.*) {#根絕接口是否包含/wx/來(lái)區(qū)分
     # 動(dòng)態(tài)頁(yè)面,交給tomcat處理
     if ( !-e $request_filename) {
        proxy_pass    http://127.0.0.1:8091/$1;#轉(zhuǎn)到后臺(tái)時(shí)需要把/wx去掉
     }
  }
  location / {
    # 用戶(hù)瀏覽器端的緩存設(shè)置
    location ~* \.(css|js|jpg|jpeg|gif|png|swf|htm|html|json|xml|svg|woff|ttf|eot|map|ico)$ {
      expires -1;
      if (-f $request_filename) {
        break;
      }
    }
    # 動(dòng)態(tài)頁(yè)面,交給tomcat處理
    if ( !-e $request_filename) {
      proxy_pass    http://127.0.0.1:8092;
    #proxy_cookie_path /* /*;
    }
  }

  error_page  500 502 503 504 /50x.html;
  location = /50x.html {
    root  html;
  }
}

特別注意:

  1、 proxy_set_header Host $http_host;

  不改變請(qǐng)求頭 。

  2、proxy_set_header Host host;如果客戶(hù)端請(qǐng)求頭中沒(méi)有攜帶這個(gè)頭部,那么傳遞到后端服務(wù)器的請(qǐng)求也不含這個(gè)頭部。這種情況下,使用 host;如果客戶(hù)端請(qǐng)求頭中沒(méi)有攜帶這個(gè)頭部,那么傳遞到后端服務(wù)器的請(qǐng)求也不含這個(gè)頭部。 這種情況下,使用host;如果客戶(hù)端請(qǐng)求頭中沒(méi)有攜帶這個(gè)頭部,那么傳遞到后端服務(wù)器的請(qǐng)求也不含這個(gè)頭部。這種情況下,使用host變量它 的值在請(qǐng)求包含“Host”請(qǐng)求頭時(shí)為“Host”字段的值,在請(qǐng)求未攜帶“Host”請(qǐng)求頭時(shí)為虛擬主機(jī)的主域名;

  3、proxy_set_header Host host: host:host:proxy_port;

  服務(wù)器名可以和后端服務(wù)器的端口一起傳送:

  4、如果某個(gè)請(qǐng)求頭的值為空,那么這個(gè)請(qǐng)求頭將不會(huì)傳送給后端服務(wù)器:

  proxy_set_header Accept-Encoding “”;

  5、用戶(hù)真實(shí)的ip地址轉(zhuǎn)發(fā)給后端服務(wù)器

  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Real-IP $remote_addr;

場(chǎng)景3:前段代碼用vue實(shí)現(xiàn),vue沒(méi)有具體的頁(yè)面,也是通過(guò)/xx/xx來(lái)訪問(wèn)資源,這時(shí)候需要與后臺(tái)接口進(jìn)行區(qū)分

實(shí)現(xiàn):

  可以通過(guò)特殊字符類(lèi)似“#”來(lái)區(qū)分,攜帶#的請(qǐng)求默認(rèn)是靜態(tài)資源

location ~* \.(#|css|js|jpg|jpeg|gif|png|swf|htm|html|json|xml|svg|woff|ttf|eot|map|ico)$ {
  expires -1;
  if (-f $request_filename) {
    break;
  }
}

場(chǎng)景4:因服務(wù)器限制,數(shù)據(jù)庫(kù)訪問(wèn)需要nginx進(jìn)行轉(zhuǎn)發(fā)

實(shí)現(xiàn):

stream {
  upstream cloudsocket {
    hash $remote_addr consistent;
    server 數(shù)據(jù)庫(kù)實(shí)際ip:3306 weight=5 max_fails=3 fail_timeout=30s;
  }
 
 server {
    listen 127.0.0.1:8058; #本機(jī)代理端口
    proxy_connect_timeout 10s;
    proxy_timeout 300s;#設(shè)置客戶(hù)端和代理服務(wù)之間的超時(shí)時(shí)間,如果5分鐘內(nèi)沒(méi)操作將自動(dòng)斷開(kāi)。
    proxy_pass cloudsocket;
  }

}

特別注意:

stream與http同級(jí),所以不要放到http里

場(chǎng)景5:訪問(wèn)某域名時(shí)需要重定向到另一個(gè)地址

實(shí)現(xiàn):

server {
  listen 7000;
  server_name localhost;
  client_max_body_size 100m;

  location = / {
    rewrite ^(.*) https://www.baidu.com permanent;
  }
}

特別注意:

last        本條規(guī)則匹配完成后繼續(xù)向下匹配新的location URI規(guī)則
break        本條規(guī)則匹配完成后終止,不在匹配任何規(guī)則
redirect       返回302臨時(shí)重定向
permanent     返回301永久重定向

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:運(yùn)城 嘉興 澳門(mén) 烏海 拉薩 齊齊哈爾 衡陽(yáng) 亳州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Nginx域名轉(zhuǎn)發(fā)使用場(chǎng)景代碼實(shí)例》,本文關(guān)鍵詞  Nginx,域名,轉(zhuǎn)發(fā),使用,場(chǎng)景,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Nginx域名轉(zhuǎn)發(fā)使用場(chǎng)景代碼實(shí)例》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Nginx域名轉(zhuǎn)發(fā)使用場(chǎng)景代碼實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    鄱阳县| 淅川县| 长沙县| 武邑县| 定南县| 罗甸县| 那曲县| 常德市| 荆州市| 抚顺县| 泸西县| 衡山县| 金门县| 思茅市| 辉南县| 丁青县| 内乡县| 绥中县| 武隆县| 饶平县| 石林| 荥阳市| 宣武区| 唐河县| 安远县| 驻马店市| 赫章县| 芦山县| 仁化县| 盐源县| 金堂县| 辰溪县| 名山县| 仁寿县| 沽源县| 哈巴河县| 南京市| 和林格尔县| 广西| 北海市| 三原县|