nginx配置域名轉(zhuǎn)發(fā)到其他域名的幾種方法小結(jié)
直接用return簡單方便 return URL; 顯示跳轉(zhuǎn)后新的網(wǎng)絡(luò)地址
proxy_pass配置可以顯示原來的網(wǎng)頁地址
以下參考:
return 指令
- 在重定向滿足兩個(gè)條件時(shí)適用:
- 重寫的 URL 適用于每個(gè)匹配的 server 或 location 的請求
- 可以使用標(biāo)準(zhǔn)的 NGINX 變量構(gòu)建重寫的 URL
return 指令簡單高效,建議盡量使用 return,而不是 rewrite。
return 指令放在 server 或 location 上下文中。語法很簡單
return code [text]; return code URL; return URL;
# 下面代碼中,listen 指令表明 server 塊同時(shí)用于 HTTP流量。 # server_name 指令匹配包含域名 ‘www.old-name.com' 的請求。return 指令告訴 Nginx 停止處理請求,直接返回 301 (Moved Permanently) 代碼和指定的重寫過的 URL 到客戶端。 # $scheme 是協(xié)議(HTTP 或 HTTPS),$request_uri 是包含參數(shù)的完整的 URI。 server{ listen 80; server_name www.old-name.com; # return 指令的第一個(gè)參數(shù)是響應(yīng)碼。第二個(gè)參數(shù)可選,可以是重定向的 URL # location 和 server 上下文中都可以使用 return 指令。 return 301 $scheme://www.new-name.com$request_uri; }
rewrite
rewrite 規(guī)則會改變部分或整個(gè)用戶請求中的 URL,主要有兩個(gè)用途:
通知客戶端,請求的資源已經(jīng)換地方了。例如網(wǎng)站改版后添加了 www 前綴,通過 rewrite 規(guī)則可以將所有請求導(dǎo)向新站點(diǎn)。
控制 Nginx 中的處理流程。例如當(dāng)需要?jiǎng)討B(tài)生成內(nèi)容時(shí),將請求轉(zhuǎn)發(fā)到應(yīng)用程序服務(wù)器。try_files 指令經(jīng)常用于這個(gè)目的。
語法:rewrite regex URL [flag];
- flag標(biāo)志位:
- last:停止處理當(dāng)前的 ngx_http_rewrite_module 指令集,并開始對匹配更改后的 URI 的新 location 進(jìn)行搜索(再從 server 走一遍匹配流程)。此時(shí)對于當(dāng)前 server 或 location 上下文,不再處理 ngx_http_rewrite_module 重寫模塊的指令。
- break:停止處理當(dāng)前的 ngx_http_rewrite_module 指令集.
- last 和 break 的區(qū)別及共同處:
- last 重寫 url 后,會再從 server 走一遍匹配流程,而 break 終止重寫后的匹配
- break 和 last 都能阻止后面的 rewrite 指令再次執(zhí)行
- redirect:返回包含 302 代碼的臨時(shí)重定向,在替換字符串不以"http://","https://“或”$scheme"開頭時(shí)使用.
- permanent:返回包含 301 代碼的永久重定向。
- rewrite 指令只能返回代碼 301 或 302。要返回其他代碼,需要在 rewrite 指令后面包含 return 指令。
proxy_pass
proxy_pass指令中在nginx的兩個(gè)模塊都有
ngx_http_proxy_module的proxy_pass:
語法: proxy_pass URL;
場景: location, if in location, limit_except
說明: 設(shè)置后端代理服務(wù)器的協(xié)議(protocol)和地址(address),以及l(fā)ocation中可以匹配的一個(gè)可選的URI。協(xié)議可以是"http"或"https"。地址可以是一個(gè)域名或ip地址和端口,或者一個(gè) unix-domain socket 路徑。
詳見官方文檔: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
ngx_stream_proxy_module的proxy_pass:
語法: proxy_pass address;
場景: server
說明: 設(shè)置后端代理服務(wù)器的地址。這個(gè)地址(address)可以是一個(gè)域名或ip地址和端口,或者一個(gè) unix-domain socket路徑。
詳見官方文檔: http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_pass
兩個(gè)proxy_pass的關(guān)系和區(qū)別:
- 在兩個(gè)模塊中,兩個(gè)proxy_pass都是用來做后端代理的指令.
- ngx_stream_proxy_module模塊的proxy_pass指令只能在server段使用,只需要提供域名或ip地址和端口,可以理解為端口轉(zhuǎn)發(fā),可以使tcp端口,也可以是udp端口.
- ngx-http-proxy-module模塊中的proxy_pass指令需要在location段,location中的if段,limit_except段中使用,處理需要提供域名或ip地址和端口外,還需要提供協(xié)議.如 “http” 或 “https”,還有一個(gè)可選的url可以配置.
proxy_pass使用詳解: 現(xiàn)在使用 http://test.yeguxin.top/proxy/aaa/bbb.text
第一種: 絕對路徑. proxy_pass http://127.0.0.1:8080; 后面8080沒有 “/”
第二種:相對路徑. proxy_pass http://127.0.0.1:8080; 后面8080有 “/”
第三種 proxy_pass http://127.0.0.1:8080/static; 后面static沒有 “/”
第四種 proxy_pass http://127.0.0.1:8080/static; 后面static有 “/”
最基本proxy_pass 用法
server { listen 80; server_name chat.paas.scorpio.uat.newtank.cn; # 轉(zhuǎn)發(fā)請求到 http://www.example.com location / { proxy_pass http://www.example.com; } }
到此這篇關(guān)于nginx配置域名轉(zhuǎn)發(fā)到其他域名的幾種方法小結(jié)的文章就介紹到這了,更多相關(guān)nginx配置域名轉(zhuǎn)發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- nginx多域名轉(zhuǎn)發(fā)的實(shí)現(xiàn)
- 解決spring cloud zuul與nginx的域名轉(zhuǎn)發(fā)問題
- Nginx域名轉(zhuǎn)發(fā)https訪問的實(shí)現(xiàn)
- Nginx域名轉(zhuǎn)發(fā)使用場景代碼實(shí)例
- Nginx 設(shè)置域名轉(zhuǎn)發(fā)到指定端口的實(shí)現(xiàn)方法
- Nginx 域名轉(zhuǎn)發(fā)的實(shí)現(xiàn)
- 使用nginx正向代理實(shí)現(xiàn)內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)過程解析
- nginx反向代理用做內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)
相關(guān)文章
nginx如何實(shí)現(xiàn)同個(gè)ip、端口訪問不同的項(xiàng)目(以路徑區(qū)分項(xiàng)目)
這篇文章主要介紹了nginx如何實(shí)現(xiàn)同個(gè)ip、端口訪問不同的項(xiàng)目(以路徑區(qū)分項(xiàng)目),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12項(xiàng)目中Nginx多級代理是如何獲取客戶端的真實(shí)IP地址
最近在研究nginx中如何獲取真實(shí)客戶端IP的方法,所以下面這篇文章主要給大家介紹了關(guān)于項(xiàng)目中Nginx多級代理是如何獲取客戶端的真實(shí)IP地址的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05詳解Prometheus 抓取 nginx 訪問日志的指標(biāo)
通過結(jié)合NGINX Exporter, Fluentd, Prometheus和Grafana, 可有效監(jiān)控并可視化NGINX中的4xx和5xx狀態(tài)碼日志,首先使用Fluentd收集和解析NGINX日志,再通過Prometheus抓取Fluentd暴露的指標(biāo),本文介紹Prometheus抓取nginx訪問日志的指標(biāo),感興趣的朋友一起看看吧2024-10-10在nginx中實(shí)現(xiàn)單位時(shí)間內(nèi)限制訪問頻率的教程
這篇文章主要介紹了在nginx中實(shí)現(xiàn)單位時(shí)間內(nèi)限制訪問頻率的教程,并非針對IP而是全局的訪問量限制,需要的朋友可以參考下2015-04-04Nginx配置實(shí)現(xiàn)高效精準(zhǔn)的流量限制策略詳解
限流(Rate?Limitting)是服務(wù)降級的一種方式,通過限制系統(tǒng)的輸入和輸出流量以達(dá)到保護(hù)系統(tǒng)的目的,下面我們就來看看如何通過配置Nginx實(shí)現(xiàn)高效精準(zhǔn)的流量限制策略吧2024-02-02Nginx 域名轉(zhuǎn)發(fā)的實(shí)現(xiàn)
這篇文章主要介紹了Nginx 域名轉(zhuǎn)發(fā)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Nginx實(shí)現(xiàn)Nacos反向代理的項(xiàng)目實(shí)踐
在日常的web網(wǎng)站部署中,經(jīng)常會用到nginx反向代理,本文主要介紹了Nginx實(shí)現(xiàn)Nacos反向代理的項(xiàng)目實(shí)踐,Nginx實(shí)現(xiàn)Nacos反向代理的項(xiàng)目實(shí)踐2022-03-03