加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx位置匹配仅在匹配根时才起作用

发布时间:2020-12-13 21:09:04 所属栏目:Nginx 来源:网络整理
导读:我正在尝试配置nginx,所以我可以有两个位置.一个用于我的节点API,另一个用于我的Jenkins CI. http:// my_ip / api应指向我的节点服务器,http:// my_ip / jenkins应该指向我的jenkins CI 我有这个服务器块. server {listen 80;server_name my_ip_address;lo

我正在尝试配置nginx,所以我可以有两个位置.一个用于我的节点API,另一个用于我的Jenkins CI.

http:// my_ip / api应指向我的节点服务器,http:// my_ip / jenkins应该指向我的jenkins CI

我有这个服务器块.

server {
listen 80;

server_name my_ip_address;

location /api {
    proxy_pass http://127.0.0.1:1234;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

location /jenkins {

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

   proxy_pass          http://localhost:8080;
   proxy_read_timeout  90;

}
}

那个配置不起作用.但是,如果我使用与root匹配的任何位置,它就可以工作.

这没有问题.如果我将节点api的位置块与/仅使用相同的话.

location / {

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

   proxy_pass          http://localhost:8080;
   proxy_read_timeout  90;

}

但如果我改变/ / jenkins,它就不再起作用了.

我知道我在这里缺少一些基本的知识,但我无法弄清楚这一点,因为我看起来似乎表明应该工作正常.

好吧,经过对该主题的更多研究后,我注意到该设置的问题是位置/ api没有连接到http://127.0.0.1:1234/它试图连接到http://127.0 .0.1:1234 / api和jenkins一样.

因此,解决方案是向位置和proxy_pass添加尾部斜杠.

location /api/ {
    proxy_pass http://127.0.0.1:1234/;
....

location /jenkins/ {
   proxy_pass          http://localhost:8080/;
   proxy_read_timeout  90;

....

这就是诀窍.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读