标签: reverse-proxy

nginx proxy_pass 使用子文件夹

好的,这个任务应该很简单,但我无法让它工作。我想在我的域名之后(实际上是在该域名的 IP 之后)有一个子文件夹,它重定向到同一服务器上的特定端口。本质上,我想摆脱必须使用许多端口的情况。

这是我的 nginx 配置

server {
    listen 80;

    index index.html index.htm index.nginx-debian.html index.php;

    server_name aaa.bbb.ccc.ddd;

    location ^~ /app2 {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://aaa.bbb.ccc.ddd:8001;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,在访问 aaa.bbb.ccc.ddd/app2 时,我希望将其解析为http://aaa.bbb.ccc.ddd:8001

这可能会很复杂。我在这里缺少什么?

谢谢帕特

nginx reverse-proxy port-forwarding

13
推荐指数
1
解决办法
5万
查看次数

配置 IIS 7 反向代理以连接到 TeamCity Tomcat

我们配置了IIS 7网络服务器,并希望在同一台机器上使用TomcatTeamCity安装创建反向代理

IIS 服务器站点是https://somesite,我希望 TeamCity 显示为https://somesite/teamcity重定向到http://localhost:portnumber.

我已经安装了IIS URL 重写扩展应用程序请求路由来尝试设置反向代理,但无法使其工作。

我找到的最接近的答案是一个旧的 StackOverflow 问题:https ://stackoverflow.com/questions/331755/how-do-i-setup-teamcity-for-public-access-over-https
不幸的是没有任何工作例子。

我已经搜索了很多,但似乎找不到相关的例子。

任何帮助表示赞赏!

rewrite iis-7 tomcat reverse-proxy teamcity

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

nginx中子目录的反向代理

我想在我的 VPS 上为我的 Heroku 应用程序(http://lovemaple.heroku.com)设置一个反向代理所以如果我访问mysite.com/blog我可以在http://lovemaple.heroku.com 中获取内容

我按照Apache wiki上的说明进行操作。

    location /couchdb {
        rewrite /couchdb/(.*) /$1 break;
        proxy_pass http://localhost:5984;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
Run Code Online (Sandbox Code Playgroud)

我改变了它以适应我的情况:

    location /blog {
        rewrite /blog/(.*) /$1 break;
        proxy_pass http://lovemaple.heroku.com;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
Run Code Online (Sandbox Code Playgroud)

当我访问时mysite.com/blog,页面显示出来,但无法获取 js/css 文件(404)。
他们的链接变为mysite.com/style.css但不是mysite.com/blog/style.css

出了什么问题,我该如何解决?

nginx directory reverse-proxy

12
推荐指数
1
解决办法
3万
查看次数

Apache httpd 错误“代理:ap_get_scoreboard_lb”与 ProxyPass

我设置了 apache 来代理 tomcat,但是当我定位页面时出现以下错误。我有时会得到一个空白页或 503:

[错误]

[Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(2) failed in child 29611 for worker proxy:reverse
[Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(1) failed in child 29611 for worker https://localhost:8443/
[Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(0) failed in child 29611 for worker http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)

我在 vm 上配置了两个 vhost,如下所示:

[http 主机]

<VirtualHost *:80>
  ServerName www.mysite.net
  ServerAlias mysite.net

  ProxyRequests Off
  ProxyPreserveHost On

  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyPass / http://localhost:8080/ retry=0
  ProxyPassReverse …
Run Code Online (Sandbox Code Playgroud)

tomcat proxy reverse-proxy mod-proxy apache-2.2

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

如何阻止 nginx 在上游服务器超时时重试 PUT 或 POST 请求?

我们正在使用 nginx 来平衡对我们应用程序的请求。我们发现当请求超时时 nginx 会切换到不同的上游服务器(很好)。但是,它对 PUT 和 POST 请求执行此操作,这可能会导致不良结果(数据存储两次)。是否可以将 nginx 配置为仅在超时时重试 GET 请求?或者有其他方法可以解决问题吗?

我们的配置如下:

upstream mash {
    ip_hash;
    server 127.0.0.1:8081;
    server 192.168.0.11:8081;
}

server {
    ...
    location / {
        proxy_pass http://mash/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        
    }
}
Run Code Online (Sandbox Code Playgroud)

nginx reverse-proxy

12
推荐指数
3
解决办法
2万
查看次数

通过主机名将 ssh 连接转发到 docker 容器

我遇到了一个非常具体的情况,虽然还有其他方法可以做到这一点,但我有点着迷于此,并想找到一种完全像这样的方法:

背景

假设我有一台服务器运行多个服务,这些服务隐藏在隔离的 docker 容器中。由于大多数这些服务都是 http,我使用 nginx 代理向每个服务公开特定的子域。例如,节点服务器运行在 docker 容器上,其端口80绑定到127.0.0.1:8000主机上。我将在 nginx 中创建一个虚拟主机,将所有请求代理myapp.mydomain.comhttp://127.0.0.1:8000. 这样,docker 容器不能从外部访问,除了通过myapp.mydomain.com.

现在我想以指向 gogs容器的方式启动一个gogsgogs.mydomain.com docker 容器。所以我启动了这个 gogs 容器,端口8000绑定到127.0.0.1:8001主机上。和一个 nginx 站点代理请求gogs.mydomain.comhttp://127.0.0.1:8001并且它运行良好......

但是,gogs 是一个 git 容器,我也想像通过那样访问存储库,git@gogs.mydomain.com:org/repo但这不适用于当前设置。使这项工作的一种方法22是将容器的端口绑定到0.0.0.0:8022主机上的端口,然后 git ssh url 可以是类似git@gogs.mydomain.com:8022/repo.

(这似乎不工作;当我推到与URI这样的原点,混帐要求密码对gitgogs.mydomain.com-而不是gogs.mydomain.com:8022-但不过这可能是什么我做错了,超出范围的这个问题,我也很感激任何诊断)

问题

我主要担心的是,我希望<gogs container>:22代理ssh 端口,就像我使用 nginx 代理 http 端口一样;即任何gogs.mydomain.com …

ssh reverse-proxy docker

12
推荐指数
1
解决办法
3725
查看次数

使用 Traefik 进行简单的反向代理

我目前使用 Apache 作为我的 LXD 容器的代理,使用这种设置:

<VirtualHost *:80>
    ServerName example.com
    ProxyRequests off
    ProxyPass / http://10.0.0.142/ retry=0
    ProxyPassReverse / http://10.0.0.142/
    ProxyPreserveHost On
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我想切换到traefik。我试过这个配置:

defaultEntryPoints = ["http"]
[entryPoints]
  [entryPoints.http]
  address = ":80"

[backends]
  [backends.backend1]
    [backends.backend1.servers.server1]
       url = "http://10.0.0.142"

[frontends]
  [frontends.frontend1]
      backend = "backend1"
      passHostHeader = true
      [frontends.frontend1.routes.example]
          rule = "Host:example.com"
Run Code Online (Sandbox Code Playgroud)
  • 这两个是等价的吗?
  • traefik 的配置可以简化吗?(删除不必要的规则)

(注意:我不打算使用 docker,我也不想这样做。)

proxy reverse-proxy apache2

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

使用 Nginx 反向代理应用程序及其静态文件

我正在尝试做一些在我看来很简单的事情,但我一定是愚蠢的或错过了一些非常明显的事情,因为我无法弄清楚。

我想访问在我的服务器上运行的多个 Web 应用程序,每个应用程序都有一个唯一的前缀:

http://mywebserver/app1 -> localhost:9001
http://mywebserver/app2 -> localhost:9002
...
Run Code Online (Sandbox Code Playgroud)

据我了解,我需要将 Nginx 配置为反向代理,所以我这样做了:

server {
listen 80;
server_name mywebserver;

  location /app1{
    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://127.0.0.1:9001/;
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

此配置允许我访问应用程序的主页http://mywebserver/app1,但未加载静态内容。

当我打开我的浏览器的控制台上,我可以看到它正试图从获得的资源http://mywebserver/static/custom/index.js,而不是像http://mywebserver/app1/static/custom/index.js

我尝试root在 location 块中添加一个指令来为静态提供服务,但由于静态内容请求是 on/而不是 on ,因此未将其考虑在内/app1

如何解决这个问题?有什么明显的我遗漏了还是我完全误解了反向代理的概念?

谢谢你。

nginx web-applications reverse-proxy static-content static-files

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

使用 Nginx 作为反向代理将相同站点添加到 cookie

使用 Nginx 作为反向代理,如何在 cookie 中添加 samesite=strict 或 samesite=lax?

rewrite nginx reverse-proxy cookies

11
推荐指数
3
解决办法
4万
查看次数

nginx 代理子域到其他地址和端口

我是 nginx 的新手,但我需要根据子域创建一些代理规则以重定向到另一个 IP 和端口。

这是我的情况:

My domain.com has IP y.y.y.y and accepts requests on port 80
My subdomains are:
- admin.domain.com -> I need to proxy to x.x.x.x:3434
- user.domain.com -> I need to proxy tox.x.x.x:3435
- vendor.domain.com -> I need to proxy to x.x.x.x:3436
Run Code Online (Sandbox Code Playgroud)

所有子域都映射到y.y.y.y但在 nginx 中我需要代理到x.x.x.x:ZZZ(ZZZ 是其他服务的特定端口)。

我正在尝试这个例子但没有成功:https : //rainbow-six3.com/plesknginx/

有人可以提供一个示例,如何在 nginx 上配置它?

nginx domain reverse-proxy subdomain

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