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

nginx地址重寫、反向代理方式

 更新時間:2023年12月25日 10:02:12   作者:小小妍的棉花糖  
這篇文章主要介紹了nginx地址重寫、反向代理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

案例一:nginx地址重寫

什么是地址重寫?

就是地址欄被重寫,如:www.360buy.com ----> www.jd.com

rewrite 舊地址 新地址 [選項] //rewrite后不要寫域名,從/開始寫。

需求:

沿用上次的www.a.com的配置,實(shí)現(xiàn)以下要求:

  • 1、所有訪問a.html的請求,重定向到b.html
  • 2、所有訪問192.168.0.100的請求重定向到www.tmooc.cn
  • 3、所有訪問192.168.0.100/的請求重定向到www.tmooc.cn/下相同的頁面
  • 4、實(shí)現(xiàn)瀏覽器與curl訪問相同的頁面文件,返回不同的內(nèi)容

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

  • 主要用到參數(shù) rewrite
  • rewrite regex replacement flag
  • rewrite 舊地址 新地址 【選項】

步驟一:修改配置文件(訪問a.html 跳到b.html)

[root@porxy ~]# vim /usr/local/nginx/conf/nginx.conf
   server {
        listen       80;
        server_name  192.168.35.134;
 
###添加下列信息####
 rewrite /a.html    /b.html;
 
 [root@porxy ~]# echo "BBB" > /usr/local/nginx/html/b.html
 [root@porxy ~]# /usr/local/nginx/sbin/nginx -s reload
客戶端進(jìn)行驗證:
[root@client ~]# curl http://192.168.35.134/a.html   //訪問的是a.html,實(shí)際出來的是b.html
BBB

瀏覽器驗證:

步驟二:修改配置文件(訪問a.網(wǎng)站的a頁面,跳轉(zhuǎn)的是a網(wǎng)站的b頁面)

[root@porxy ~]# vim /usr/local/nginx/conf/nginx.conf
   server {
        listen       80;
        server_name  192.168.35.134;
 
###多添加redirect####
 rewrite /a.html    /b.html redirect;
 
 [root@porxy ~]# echo "BBB" > /usr/local/nginx/html/b.html
 [root@porxy ~]# /usr/local/nginx/sbin/nginx -s reload
客戶端進(jìn)行驗證:
[root@client ~]# curl http://192.168.35.134/a.html   //訪問的是a.html,實(shí)際出來的是b.html
BBB

瀏覽器地址欄會出現(xiàn)變化:

步驟三:修改配置文件(訪問192.168.4.5的請求重定向至www.tmooc.cn)

[root@porxy ~]# vim /usr/local/nginx/conf/nginx.conf
 server {
        listen       80;
        server_name  192.168.35.134;
        
 ######添加這個信息#########
 rewrite ^/   http://www.tmooc.cn/ ;   # ^/ 值得正則匹配 
 
 [root@porxy ~]# /usr/local/nginx/sbin/nginx -s reload

 瀏覽器訪問時直接跳轉(zhuǎn)到www.tmooc.cn 網(wǎng)站

步驟四:訪問192.168.35.134/下面的頁面,重定向到www.tmooc.cn/下相同的頁面

[root@porxy ~]# vim /usr/local/nginx/conf/nginx.conf
      location / {
        }
        listen       80;
        listen       80;
        server_name  192.168.35.134;
        
 ######添加配置#######
 rewrite ^/(.*)$ http://www.tmooc.cn/$1;   
 #.*代表任何東西,()括號代表復(fù)制,后面的$1就是第一個括號的東西。更好的解決了步驟三的缺點(diǎn)。
 
 [root@porxy ~]# /usr/local/nginx/sbin/nginx -s reload
 
 瀏覽器驗證:
 例如:訪問的是http://www.baidu.com/free   則會跳轉(zhuǎn)到http://www.tmooc.cn/free頁面下。

瀏覽器測試:

步驟五:修改配置文件(實(shí)現(xiàn)curl和火狐訪問相同鏈接返回的頁面不同)

連接相同則代表

訪問:/usr/local/nginx/html/test.html 實(shí)際訪問:/usr/local/nginx/html/firefox/test.html

腳本更改為:如何區(qū)分?

if (如果你是手機(jī)){

rewrite ^/(.*) /firefox/$1;

}

http {
    include       mime.types;
    default_type  application/octet-stream;
#######下面注釋的很重要########
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  //日志的第一列時客戶端的ip地址,第二列時橫線,第三列是用戶名,第四列是方括號括起來的時間,第五列是訪問的頁面
    #                  '$status $body_bytes_sent "$http_referer" '       //然后是狀態(tài),再一列是字節(jié),再是看請求的是什么
    #                  '"$http_user_agent" "$http_x_forwarded_for"';    //$http_user_agent 是可以看到客戶端用的是什么操作系統(tǒng),什么瀏覽器,什么版本號,
 
    #access_log  logs/access.log  main;
 

步驟一:

1)創(chuàng)建網(wǎng)頁目錄及對應(yīng)的網(wǎng)頁文件

[root@porxy ~]# echo " I am beautiful girl" > /usr/local/nginx/html/test.html
[root@porxy ~]# mkdir -p /usr/local/nginx/html/firefox/
[root@porxy ~]# echo "firefox page" > /usr/local/nginx/html/firefox/test.html

2)修改nginx配置文件

[root@porxy ~]# vim /usr/local/nginx/conf/nginx.conf
 
    server {
        listen       80;
        server_name  192.168.35.134;
 #rewrite ^/ http://www.tmooc.cn/ ;
 #rewrite ^/(.*)$ http://www.tmooc.cn/$1;  
 
#########添加下列信息#########
#這里的~符號代表正則匹配,*符號代表不區(qū)分大小寫
 if ($http_user_agent ~* firefox){   #識別客戶端firefox瀏覽器
   rewrite ^(.*)$ /firefox/$1;
 }
[root@porxy ~]# /usr/local/nginx/sbin/nginx -s reload

nginx地址重寫【總結(jié)】

rewrite 舊地址 新地址 [選項] //rewrite后不要寫域名,從/開始寫。

rewrite /a.html /b.html ; //訪問a跳轉(zhuǎn)到b

rewrite /a.html /b.html redirect; // redirect 臨時重定向

rewrite /a.html /b.html last; // last意思是不再讀其他rewrite

rewrite /a.html /b.html permament; //permament意思是永久重定向。

rewrite /a.html /b.html break; // break意思是不再讀其他語句,請求結(jié)束。

案例二: nginx的反向代理

Nginx功能:

  • 調(diào)度器(輪詢算法)
  • 健康檢查

什么是調(diào)度?

就是當(dāng)用戶發(fā)送訪問請求時,nginx代理器將第一次請求發(fā)送到web1,第二次請求發(fā)送到web2服務(wù)器上。

什么是健康檢查?

就是智能的判斷哪臺服務(wù)器壞了,智能做健康檢查。

結(jié)構(gòu)上的作用:

這個環(huán)境的結(jié)構(gòu)上作用就是:

1.當(dāng)訪問壓力增大時,可以把負(fù)載均衡到每個服務(wù)器上。在生產(chǎn)環(huán)境中起到高并發(fā)的功能。

2.起到高可用的功能。當(dāng)不做這個環(huán)境時,壞了一臺機(jī)子將全部壞掉,有這個環(huán)境就可以起到高可用的功能。

實(shí)驗環(huán)境:四臺虛擬機(jī)

client192.168.35.137ens33
proxy192.168.35.5ens33
proxy192.168.0.5ens37
web1192.168.0.100ens33
web2192.168.0.200ens33

不相同網(wǎng)段之間不通。Nginx即叫代理服務(wù)器、也叫調(diào)度器。

步驟一:部署實(shí)施后端Web服務(wù)器

1)部署后端服務(wù)器

[root@web1 ~]# echo "AAA" >/var/www/html/index.html
 
[root@web2 ~]# echo "BBB" >/var/www/html/index.html
[root@porxy ~]# systemctl start httpd

步驟二:配置nginx服務(wù)器,添加服務(wù)器池,實(shí)現(xiàn)反向代理

[root@porxy ~]# vim /usr/local/nginx/conf/nginx.conf
######添加如下信息######
#upstream 定義后端的服務(wù)器集群,集群名字任意(如webserver)
#使用server定義集群中的具體服務(wù)器和端口  
    upstream webserver {
         server 192.168.0.100:80;
         server 192.168.0.200:80;
      }
 
    server {
        listen       8000;
        server_name  localhost;
      #  server_name   192.168.35.5;
 
     # rewrite /a.html    /b.html;   #訪問a.html跳轉(zhuǎn)到b.html
     # rewrite /a.html    /b.html  redirect;   #訪問a.網(wǎng)站
的a頁面,跳轉(zhuǎn)的是a網(wǎng)站的b頁面
     #  rewrite ^/   http://www.tmooc.cn/ ;   # ^/ 值得正>則匹配
     #  rewrite ^/(.*)$ http://www.tmooc.cn/$1;   
     # .*代表任何東西,()括號代表復(fù)制,后面的$1就是第一個>括號的東西
 
       #charset koi8-r;
        #access_log  logs/host.access.log  main;
 
        location / {   #處理靜態(tài)信息
######添加如下信息######
            proxy_pass http://webserver;  #當(dāng)用戶訪問8000>端口時,直接定義到webserver
            root   html;
            index  index.html index.htm;
        }
 
[root@porxy ~]/usr/local/nginx/sbin/nginx -s reload
此時在客戶端上:9驗證負(fù)載均衡)

驗證(健康檢查):

當(dāng)停掉某一臺web服務(wù)器時,再次客戶端訪問,看是否輪詢,是否報錯,

步驟三:配置upstream 服務(wù)器集群池屬性

1)設(shè)置失敗次數(shù),超時時間,權(quán)重

  • weight:設(shè)置服務(wù)器權(quán)重值,權(quán)重默認(rèn)為1
  • max_fails設(shè)置最大失敗次數(shù)
  • fail_timeout:設(shè)置失敗超時時間,單位為秒,(壞了,超時時間內(nèi)不再連接)
  • down: 標(biāo)記服務(wù)器已關(guān)機(jī),不參與集群調(diào)度

長時間不能恢復(fù)使用down,短時間可以使用fail——timeout,權(quán)重越高,服務(wù)器越繁忙

[root@porxy ~]vim /usr/local/nginx/conf/nginx.conf
  upstream webserver {
         server 192.168.0.100:80 weight=1 max_fails=1 fail_timeout=30 ;   #意思為權(quán)重時2:1的概率
         server 192.168.0.200 weight=2 max_fails=2 fail_timeout=30;
      }
[root@porxy ~]/usr/local/nginx/sbin/nginx -s reload

步驟四:配置upstream 服務(wù)器集群的調(diào)度算法

1)相同客戶端訪問相同的服務(wù)器

假設(shè):web1、web2是一個需要登錄的動態(tài)網(wǎng)站。porxy使用輪詢算法時,登錄web1,則訪問到了web2。

需求:相同客戶端訪問相同的服務(wù)器

解決辦法:porxy采用ip_hash算法

vim /usr/local/nginx/conf/nginx.conf
....
upstream webserver{
		ip_hash;
		#通過ip_hash設(shè)置調(diào)度規(guī)則為:相同客戶端訪問相同的服務(wù)器
        server 192.168.0.100:80;  #使用server定義集群中的具體服務(wù)器和端口
        server 192.168.0.200:80;
}
server {
        listen       80;
        server_name  www.a.com;
        location / {
          proxy_pass http://webserver;
          root html;
          index index.html index.htm;
        }
}
...
重啟服務(wù)
/usr/local/nginx/sbin/nginx -s reload

總結(jié):案例一配置都是在http中修改,所以做的是網(wǎng)站代理。  

案例三:Nginx的TCP/UDP調(diào)度器

需求

使用Nginx實(shí)現(xiàn)tcp/udp調(diào)度器功能,實(shí)現(xiàn)如下功能:

  • 后端ssh服務(wù)器兩臺
  • nginx編譯安裝時需要使用–with-stream,開啟ngx_stream_core_module模塊
  • nginx采用輪詢的方式調(diào)用后端ssh服務(wù)器

方案:

使用4臺虛擬機(jī),其中一臺作為nginx代理服務(wù)器,該服務(wù)器需要配置兩塊網(wǎng)卡,IP地址分別為192.168.0.100和192.168.0.200。

實(shí)驗環(huán)境:四臺虛擬機(jī) 

client192.168.35.137ens33
proxy192.168.35.5ens33
proxy192.168.0.5ens37
web1192.168.0.100ens33
web2192.168.0.200ens33

nginx可以做其他服務(wù)的代理

要實(shí)現(xiàn)Nginx對TCP/UDP的調(diào)度,需要安裝以下模塊

模塊

  • ngx_stream_core_module模塊
  • 使用--with-stream開啟該模塊 (開啟這一功能,則可以代理一切的服務(wù))
  • 注意:nginx從1.9版本才開始支持該功能

步驟一:部署支持4層tcp/ip代理的Nginx服務(wù)器

特別注意:做過之前實(shí)驗的,現(xiàn)在需要將之前的刪除后,重新安裝。

[root@proxy ~]# yum -y install gcc pcre-devel openssl-devel
[root@proxy ~]# tar -xf nginx-1.20.1.tar.gz 
[root@proxyt ~]# cd nginx-1.20.1/
[root@localhost nginx-1.20.1]# ./configure \
> --with-http_ssl_module   \     //開啟ssl加密功能
> --with-stream    //開啟四層反向代理,也就是tcp/udp的服務(wù)器
[root@proxy nginx-1.20.1]# make && make install

步驟二:修改nginx配置文件,添加地址池,實(shí)現(xiàn)tcp/udp反向代理

[root@porxy ~]vim /usr/local/nginx/conf/nginx.conf
events {
    worker_connections  1024;
}
 
stream {
   upstream backend{
      server 192.168.0.100:22;  #后端兩臺ssh服務(wù)器
      server 192.168.0.200:22;
   }
   server {
      listen 12345;  #nginx監(jiān)聽的端口號確保唯一性
      proxy_pass backend;
      proxy_connect_timeout 1s;  #連接的超時時間
      proxy_timeout 3s;
 
}
 
}
 
[root@proxy conf]# /usr/local/nginx/sbin/nginx

步驟三:客戶端驗證

 [root@client ~]# ssh 192.168.4.5 -p 12345

總結(jié):案例二只要是tcp/udp的代理都可以做。

最后

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

相關(guān)文章

  • Nginx+uWSGI部署實(shí)踐

    Nginx+uWSGI部署實(shí)踐

    文章介紹了如何使用Nginx和uWSGI部署Django應(yīng)用,包括配置WSGI接口、安裝和配置uWSGI、關(guān)聯(lián)uWSGI和Nginx、配置靜態(tài)文件、轉(zhuǎn)交請求給其他地址以及實(shí)現(xiàn)負(fù)載均衡
    2025-12-12
  • nginx目錄路徑重定向的方法

    nginx目錄路徑重定向的方法

    這篇文章主要介紹了nginx目錄路徑重定向的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • nginx利用referer指令實(shí)現(xiàn)防盜鏈配置

    nginx利用referer指令實(shí)現(xiàn)防盜鏈配置

    nginx模塊ngx_http_referer_module通常用于阻擋來源非法的域名請求,我們應(yīng)該牢記。下面這篇文章主要介紹了nginx利用referer指令實(shí)現(xiàn)防盜鏈配置的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • Nginx設(shè)置HttpOnly Secure SameSite參數(shù)解決Cookie信息丟失

    Nginx設(shè)置HttpOnly Secure SameSite參數(shù)解決Cookie信息丟失

    本文主要介紹了Nginx中Cookie缺少SameSite屬性的問題,并詳細(xì)解釋了HttpOnly、Secure和SameSite屬性的作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 在Linux和Windows系統(tǒng)上安裝Nginx服務(wù)器的教程

    在Linux和Windows系統(tǒng)上安裝Nginx服務(wù)器的教程

    這篇文章主要介紹了在Linux和Windows系統(tǒng)上安裝Nginx服務(wù)器的教程,Linux系統(tǒng)這里以CentOS為代表,需要的朋友可以參考下
    2015-08-08
  • 詳解Centos7 源碼編譯安裝 Nginx1.13

    詳解Centos7 源碼編譯安裝 Nginx1.13

    這篇文章主要介紹了詳解Centos7 源碼編譯安裝 Nginx1.13,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Linux下yum安裝nginx教程

    Linux下yum安裝nginx教程

    這篇文章主要介紹了Linux下yum安裝nginx教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • nginx配置多個前端項目實(shí)現(xiàn)步驟

    nginx配置多個前端項目實(shí)現(xiàn)步驟

    本文主要介紹了nginx配置多個前端項目實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Nginx配置多個訪問路徑的實(shí)現(xiàn)

    Nginx配置多個訪問路徑的實(shí)現(xiàn)

    本文主要介紹了Nginx配置多個訪問路徑的實(shí)現(xiàn),Nginx通過配置多個service就可以實(shí)現(xiàn)多訪問路徑,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • ubuntu 下的nginx服務(wù)器配置詳解

    ubuntu 下的nginx服務(wù)器配置詳解

    這篇文章主要介紹了ubuntu 下的nginx服務(wù)器配置詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評論

铜梁县| 南宁市| 兴和县| 霍州市| 汝阳县| 武乡县| 临江市| 九寨沟县| 安仁县| 西贡区| 吐鲁番市| 德惠市| 晋州市| 固阳县| 五常市| 孟州市| 屯昌县| 广州市| 周宁县| 招远市| 庐江县| 新平| 马关县| 榆中县| 垫江县| 利津县| 专栏| 裕民县| 宜宾市| 罗山县| 新晃| 贺州市| 汉川市| 启东市| 永宁县| 资源县| 城步| 台山市| 五峰| 永清县| 太和县|