人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

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

發(fā)布日期:2022-01-21 13:07 | 文章來源:源碼中國

場景1:因服務(wù)器限制,所以只對外開放了一個端口,但是需要請求不同的外網(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后面必須跟"/",否則會造成轉(zhuǎn)發(fā)不正常

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

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

第一種:

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

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

第二種(相對于第一種,最后少一個 / )

  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

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

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

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

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

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

server {
  listen  0.0.0.0:8204;
  server_name localhost;
  # 靜態(tài)頁面目錄
  root   E:\xxxxxxx;
  # 默認(rèn)首頁
  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/來區(qū)分
     # 動態(tài)頁面,交給tomcat處理
     if ( !-e $request_filename) {
        proxy_pass    http://127.0.0.1:8091/$1;#轉(zhuǎn)到后臺時需要把/wx去掉
     }
  }
  location / {
    # 用戶瀏覽器端的緩存設(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;
      }
    }
    # 動態(tài)頁面,交給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;

不改變請求頭 。

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

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

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

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

proxy_set_header Accept-Encoding “”;

5、用戶真實(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;

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

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

可以通過特殊字符類似“#”來區(qū)分,攜帶#的請求默認(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;
  }
}

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

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

stream {
  upstream cloudsocket {
    hash $remote_addr consistent;
    server 數(shù)據(jù)庫實(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è)置客戶端和代理服務(wù)之間的超時時間,如果5分鐘內(nèi)沒操作將自動斷開。
    proxy_pass cloudsocket;
  }
}

特別注意:

stream與http同級,所以不要放到http里

場景5:訪問某域名時需要重定向到另一個地址

實(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臨時重定向
permanent     返回301永久重定向

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

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實(shí)時開通

自選配置、實(shí)時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部