小编Stu*_*gal的帖子

Nginx 动态 proxy_pass 无法正确解析

我在配置 nginx 时遇到问题,我在网上搜索了解决方案,我有一些零碎的东西,但我仍然无法提出正确的配置。

我已经注册了一个域,比方说 - www.example.com。我已经在注册商网站上配置了所有内容,ping www.example.com 和 www.*.example.com 成功。

我的机器上运行着 Apache Tomcat,监听端口 8080。我想设置动态 proxy_pass。因此,如果我在 tomcat 中运行应用程序 MyApp 并可通过 localhost:8080/MyApp 访问,我希望能够使用 www.MyApp.example.com 访问它,所以基本上子域将是应用程序在 tomcat 中的名称。

这是我的 nginx 配置:

server {
  server_name ~^(www\.)?(?<sub_domain>.+)\.example\.com$;
  listen 80;

  location / {
     proxy_pass http://localhost:8080/$sub_domain/;
  }
}
Run Code Online (Sandbox Code Playgroud)

当我访问 www.myapp.example.com 时,我被重定向到http://localhost:8080/myapp- 我的意思是我最终进入了http://localhost:8080/myapp我的浏览器。

但是,如果我将 nginx 设置中的正则表达式更改为:

server {
      server_name www.myapp.example.com myapp.example.com
      listen 80;

      location / {
         proxy_pass http://localhost:8080/myapp/;
      }
    }
Run Code Online (Sandbox Code Playgroud)

然后一切都像魅力一样。我知道它必须对解析器做些什么,我已经尝试将解析器放在 nginx 中,但它没有任何改变。

我在这里缺少什么?

//编辑:

这是我的配置。我仍然被重定向到 www.myapp.example.com/myapp/login 而不是 www.myapp.example.com/login。我已经改变了正则表达式,还是一样。

  http {

    upstream backend { …
Run Code Online (Sandbox Code Playgroud)

domain-name-system nginx proxy proxypass

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

domain-name-system ×1

nginx ×1

proxy ×1

proxypass ×1