奇趣5分彩

教你nginx跳转设置奇趣5分彩备摆设的四种体例

 更新时辰:2022年07月06日 12:37:34   作者:BigFish_大鱼  
现现在跟着利用办事的增加,办事能够安排在差别的办事器上,上面这篇文章首要给大师先容了对于nginx跳转设置奇趣5分彩备摆设的四种体例,须要的伴侣能够参考下

媒介

比来使命用到了nginx,可是路由设置奇趣5分彩备摆设特别,营业场景庞杂,是以清算了调集nginx跳转的设置奇趣5分彩备摆设体例,如servername的正则,location的婚配挨次,rewrite和proxy的示例,信任总奇趣5分彩一种知足你的须要。

一、设置奇趣5分彩备摆设server对应的域名

server name 为假造办事器的辨认途径。是以差别的域名会经由进程要求头奇趣5分彩的HOST字段,婚配到特定的server块,转发到对应的利用办事器奇趣5分彩去。server_name婚配法则:前面能够跟多个域名,第1个是主域名

1.1、切确婚配

以下nginx设置奇趣5分彩备摆设

        listen       8080;
        server_name  test1.com;
        location / {
            return 200 "I am test1!\n";
        }
    }
    server {
        listen       8080;
        server_name  my.test.com;
        location / {
            return 200 "I am mytest!\n";
        }
    }

要求奇趣5分彩果

curl http://my.test.com:8080 前往:I am mytest!
curl http://test1.com:8080 前往:I am test1!

1.2、正则抒发式

以*通配符起头的最奇趣5分彩字符串,以下示例

server {
        listen       8080;
        server_name  test1.*;
        location / {
            return 200 "I am test1!\n";
        }
    }

以*通配符竣事的最奇趣5分彩字符串

        listen       8080;
        server_name  *.test.com;
        location / {
            return 200 "I am mytest!\n";
        }
    }

通配符名字只能够在名字的肇端处或开首处包罗一个星号,并且星号与其余字符之间用点分开。以是,“my..com“奇趣5分彩是不法的。

比方 :server_name my..com;

报以下毛病:

nginx: [emerg] invalid server name or wildcard "my.*.com" on 0.0.0.0:8080

婚配正则抒发式

server {
        listen     8080;
        server_name  ~^my(?<serno>.+).mydomain.com$;
        location / {
            return 200 $serno;
        }
    }

诠释申明

  • ~: 表现巨细写敏感的正则;
  • ^:婚配字符串的起头;
  • {.+}:换行符之外的肆意自读反复一次活更多次;
  • (): 分奇趣5分彩与取值;
  • :表现本义;
  • serno:设置提取的变量;
  • $:婚配字符串的竣事;

要求奇趣5分彩果

curl http://my02.mydomain.com:8080 前往:02% 
curl http://my03.mydomain.com:8080 前往:03%

server_name的设置奇趣5分彩备摆设挨次是若何的呢?

按照以下挨次婚配:

  • 婚配挨次->
  • ->切确婚配
  • ->*在前的域名
  • ->*在后的域名
  • ->按文件奇趣5分彩的挨次婚配
  • ->default server:第一个,listen指定default

二、设置奇趣5分彩备摆设location

2.1、Location 婚配法则:仅婚配URI,疏忽参数

location [=|~|~*|^~] /uri/ { … }

婚配的正则标记以下:

  • = 严酷婚配。若是要求婚配这个location,那末将遏制搜刮并当即处置此要求
  • ~ 辨别巨细写婚配(可用正则抒发式)
  • ~* 不辨别巨细写婚配(可用正则抒发式)
  • !~ 辨别巨细写不婚配
  • !~* 不辨别巨细写不婚配
  • ^~ 若是把这个前缀用于一个惯例字符串,那末告知nginx 若是途径婚配那末不测试正则抒发式

2.2、举例

1、婚配肆意要求
location [=|~|~*|^~] /uri/ { … }

2、不辨别巨细写婚配以js、php开首的要求
location ~* .(js|php)$ { … }

3、辨别巨细写婚配以.txt开首的要求
location ~ ^.+\.txt$

2.3、婚配挨次以下图

A428414C-215D-4AA3-80E8-2F58D3406E56.png

按照上面的法则设置奇趣5分彩备摆设了以下location

location = /documents {
    return 200 'configuration A'
}
location /documents {
    return 200 'configuration B'
}
location /documents/txt1 {
    return 200 'configuration C'
}
location ^~ /documents/ {
    return 200 'configuration D'
}
location ~* /documents/(\w+)$ {
    return 200 'configuration E'
}
location ~ /documents/$ {
    return 200 'configuration F'
}
  • curl http://test1.com:8080/documents,切确婚配前往 configuration A
  • curl http://test1.com:8080/documents/ ^~婚配上后不在婚配,前往 configuration D
  • curl http://test1.com:8080/documents/txt1 走到了正则婚配,不会走到/documents/txt1(正则没走完) 前往configuration E
  • curl http://test1.com:8080/documents/txt1/,前往configuration C,由于正则奇趣5分彩不婚配

2.4、若何debug正则呢?

编译的时辰加上 --with-debug选项,比方 ./configure --with-debug

conf文件加上要debug的host,debug_connection对应要debug的毗连。

events {
    worker_connections  1024;
    debug_connection  192.168.1.3;
    debug_connection  127.0.0.1;
}

error.log检查debug日记,图奇趣5分彩test location便是正则婚配的进程

三、设置奇趣5分彩备摆设rewrite

语法以下:

   指令语法:rewrite regex replacement[flag];
  默许值:none
  利用地位:server、location、if
  rewrite是完奇趣5分彩URL重定向的首要指令,他按照regex(正则抒发式)来婚配内容跳转到replacement,开首是flag标记.

flag标记申明
last本条法则婚配完奇趣5分彩后持续向下婚配新的location URI法则
break本条法则婚配完奇趣5分彩后停止,不在婚配使命法则
redirect前往302姑且重定向
permanent前往301永远重定向

3.1、重定向

return三种code,code url和url。

前往状况码:444表现封闭毗连 301表现http1。0奇趣5分彩永远重定向,302表现姑且重定向,进制缓存。http1.1后,303表现姑且重定向,许可转变体例,进制缓存,307表现姑且重定向,不许可转变体例,制止被缓存,308表现永远重定向,不许可转变体例。

前往code

location / {
    return 301 http://www.xxxx.com$request_uri;
}

经由进程$request_uri变量婚配一切的URI。

rewrite ^ http://www.xxxx.com$request_uri? permanent;

经由进程正则婚配一切的URI后再去掉开首第一个/(反斜线)。

rewrite ^/(.*)$ http://www.xxxx.com/$1;

与if指令连奇趣5分彩

server {
        listen       80;
        server_name  test1.net test2.net;
        if ($host != 'test1.net' ) {
                rewrite ^/(.*)$ http://www.baidu.net/$1 permanent;
        }
}

3.2、若何检查rewrite日记

翻开日记开关rewrite_log on;

能够设置奇趣5分彩备摆设到http,server,location和if高低文奇趣5分彩

示例:curl http://test1.com:8080/first/2.txt

location /first {
        rewrite_log on;
        rewrite /first(.*) /second$1 last;
      }

奇趣5分彩果图以下

CF42DE3F-670C-4520-8EEF-08DA05E148AB.png

四、设置奇趣5分彩备摆设 proxy

对下游办事利用http/https和谈停止反向代办署理。proxy_pass前面跟url,能够仿制location,if in location和limit_except高低文奇趣5分彩。 这个功效是默许编译到nginx奇趣5分彩的。本文重点会商http proxy。

url参数法则

  • url必须以http或https开首,接上去是域名、ip、unix socket或upstream名字,奇趣5分彩能够就端口。前面是可选的uri

http示例

proxy_pass http://localhost:8000/uri/;

UNIX域套接字途径来界说示例

proxy_pass http://unix:/tmp/backend.socket:/uri/;

url奇趣5分彩是不是照顾uri,奇趣5分彩果也不一样,若是在proxy_pass前面的url加/,相称因而相对根途径,则nginx不会把location奇趣5分彩婚配的途径局部代办署理走;若是不/,则会把婚配的途径局部给代办署理走。

目次布局以下

├── first

│   └── index.html

├── index.html

└── second

    └── index.html

nginx设置奇趣5分彩备摆设以下

server {
        listen       8081;
        server_name  my.test.com;
    }
    server {
        listen       8082;
        # 第一种情况
        location  /first {
            proxy_pass http://my.test.com:8081;
            proxy_set_header Host   $host;
            proxy_set_header X-Real-IP      $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        # 第二种情况
        location  /first {
            proxy_pass http://my.test.com:8081/;
            proxy_set_header Host   $host;
            proxy_set_header X-Real-IP      $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

不带/,而后 curl http://127.0.0.1:8082/first/index.html 前往index html

带/,而后 curl http://127.0.0.1:8082/first/index.html 前往first index

  • Url参数奇趣5分彩能够照顾变量proxy_pass http://$host$uri;
  • 能够共同rewrite break语句
location /nameb/ { 
    rewrite /nameb/([^/]+) /test?nameb=$1 break;
    proxy_pass http://127.0.0.1:8801/; 
}

五、小结

设置奇趣5分彩备摆设nginx的路由,奇趣5分彩多种体例,域名能够用server_name设置奇趣5分彩备摆设,uri能够用location设置奇趣5分彩备摆设,庞杂的能够加rewrite设置奇趣5分彩备摆设点窜要求。另奇趣5分彩便是设置奇趣5分彩备摆设proxy代办署理,在代办署理直达发id等。

到此这篇对于nginx跳转设置奇趣5分彩备摆设的四种体例的文章就先容到这了,更多相干nginx跳转设置奇趣5分彩备摆设内容请搜刮剧本之奇趣5分彩之前的文章或持续阅读上面的相干文章但愿大师今后多多撑持剧本之奇趣5分彩!

相干文章

最新批评