标签: reverse-proxy

Nginx 上游负载平衡:502 的自动重试?

如果我有多个上游反向代理的 nginx 负载平衡,并且其中一个出现故障,我的用户会收到 502,还是由 nginx 负责重新路由到已启动的上游?

reverse-proxy nginx

4
推荐指数
1
解决办法
4414
查看次数

用于重定向域的 NGinx 配置

我的网络上有 2 台服务器:

一台 linux 机器 (192.168.0.2) 的网站在端口 8181 上侦听 service1.domain.com 一台 Windows 机器 (192.168.0.3) 的网站在端口 8080 上侦听 service2.domain.com

我想设置一个 nginx 反向代理,以便我可以像这样路由请求:

service1.domain.com --> 192.168.0.2:8181 with host header service1.domain.com

service2.domain.com --> 192.168.0.3:8080 with host header service2.domain.com
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下配置:

### General Server Settings             ###

worker_processes  1;

events {
  worker_connections  1024;
}

### Reverse Proxy Listener Definition  ###

http {
 server {
  listen        80;
  server_name       service1.domain.com;
  location / {
   proxy_pass       http://192.168.0.2:8181;
   proxy_set_header     host service1.domain.com;
  }
 }
server {
  listen        80;
  server_name       service2.domain.com;
  location …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy nginx

4
推荐指数
1
解决办法
6323
查看次数

如何在SSL终止反向代理后运行时在IIS上创建重定向响应?

我有一个ASP.NET网站,通常通过HTTPS在IIS上运行.现在我想把它放在一个反向代理后面,它会为我做SSL终止.问题是来自反向代理的请求是在HTTP:80上,当我按照惯例创建重定向响应时,响应的Location标头设置为http://...而不是https://...

我知道反向代理X-Forwarded-Proto在标题中传递,我可以在创建重定向响应和重定向URL时检查该标头.但是,如果可能的话,我希望避免为X-Forwarded-Whatever代码周围的所有内容进行检查,并在编码时再考虑一下,并且还必须仔细检查当代理部署在代理后面时是否仍然有效.

asp.net iis ssl reverse-proxy

4
推荐指数
1
解决办法
3632
查看次数

带有 Nginx 反向代理的子域上的 ZNC?

我目前通过http://www.example.net:6667在我的 VPS 上访问 ZNC ,但我正在尝试配置 Nginx,因此它只能通过http://znc.example.net访问。

我按照官方 ZNC wiki 上说明进行操作,但是尽管尝试了很多小时的不同方法,我还是继续收到 Firefox 的“找不到服务器”错误。

里面的一个server/etc/nginx/sites-available/example.net如下:

server {
    listen 80;
    server_name znc.example.net;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:6667/;
    }
}
Run Code Online (Sandbox Code Playgroud)

TrustedProxy = 127.0.0.1我的~/.znc/configs/znc.conf文件中也有,那么我哪里出错了?谢谢。

reverse-proxy nginx

4
推荐指数
1
解决办法
2277
查看次数

如何用烧瓶加捻?

我希望能够在多个不同的目录(exp:/example1,/example2...等)上运行扭曲的服务器,所以我想我会使用flask.这是我到目前为止:

from flask import Flask
from twisted.web.server import Site
from twisted.web.wsgi import WSGIResource
from twisted.internet import reactor
from twisted.web.proxy import ReverseProxyResource
from twisted.web.resource import Resource

app = Flask(__name__)
@app.route('/example1')
def index():
    return 'My Twisted Flask'

flask_site = WSGIResource(reactor, reactor.getThreadPool(), app)

root = Resource()
root.putChild('my_flask', flask_site)

site_example = ReverseProxyResource('www.example.com', 80, ''.encode('utf-8'))
root.putChild('example1', site_example)

reactor.listenTCP(80, Site(root))
reactor.run()
Run Code Online (Sandbox Code Playgroud)

唯一的问题是它不起作用,我不确定我做错了什么.我感谢任何帮助,谢谢!

python reverse-proxy twisted flask python-3.x

4
推荐指数
1
解决办法
1354
查看次数

如何使用nginx作为跨域的反向代理

我需要使用 nginx 实现以下测试用例:

www.example.com/api/应该重定向到ABC.com/api,而www.example.com/api/site/login应该重定向到XYZ.com/api/site/login

但是在浏览器中,用户应该只看到www.example.com/api....(而不是重定向的 URL)。

请让我知道如何实现这一点。

reverse-proxy nginx cross-domain

4
推荐指数
2
解决办法
4366
查看次数

使用 nginx 作为反向代理运行 Apache Zeppelin

在我们当前的架构中,我们有两个 apache 前端服务器,在它们前面,我们有一个 nginx 负载均衡器。在它前面是一个 nginx 反向代理。

我的问题是我试图通过反向代理运行 Apache Zeppelin,但我在 websockets 方面遇到了一些问题。

我收到这样的错误: 400 HTTP method GET is not supported by this URL

这是 Chrome 的网络选项卡显示的屏幕截图: 在此处输入图片说明

我为 Zeppelin 添加我的反向代理配置:

error_log  /var/log/nginx/nginx_error.log  warn;
server {
    listen       80;
    server_name  localhost;

    location /zeppelin/ {
        proxy_pass http://zeppelin:8080/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade websocket;
        proxy_set_header Connection upgrade;
    }

    # fallback
    location / {
        return 301 http://ci.blablalablab.com/app/;
    }  
}
Run Code Online (Sandbox Code Playgroud)

Zeppelin 在 docker 容器内运行,我公开了 8080 端口,它的主机名是:zeppelin。

如果您对架构有任何疑问,请随时提出。

非常感谢你们 !

apache reverse-proxy nginx websocket apache-zeppelin

4
推荐指数
1
解决办法
2951
查看次数

通过Nginx反向代理在Docker容器内使用phpMyAdmin

我安装了phpMyAdmin docker镜像并使用

# docker run --name phpmyadmin -d --link mariadb:db -p 8081:80 -e PMA_ABSOLUTE_URI=http://servm3/pma --restart unless-stopped phpmyadmin/phpmyadmin
Run Code Online (Sandbox Code Playgroud)

访问http:// servm3:8081可以正常工作。变量PMA_ABSOLUTE_URI用于反向代理,如docker 页面所示

然后,我设置了nginx(本地安装,不在docker内部)以充当反向代理(适用于鳄梨酱等其他一些应用程序)。

在我的nginx.conf中,我有:

location /pma/ {               
    proxy_pass http://localhost:8081/;                                 
    proxy_buffering off;                                     
}
Run Code Online (Sandbox Code Playgroud)

访问http:// servm3 / pma会在浏览器选项卡上显示收藏夹图标,但是仅显示空白页而不是登录页面。删除前面的“ /”并重新启动nginx只会得到404。

# docker logs phpmyadmin
Run Code Online (Sandbox Code Playgroud)

除了php和nginx服务的启动信息外,什么都没有显示,与phpmyadmin没有任何关系。

本地nginx访问日志显示几个304和404代码以及大约200个代码,错误日志不存在。详细的日志可以在pastebin上找到。

我希望有人能够告诉我如何使Nginx用作phpMyAdmin docker容器的反向代理。

如果缺少一些重要信息,请告诉我。

reverse-proxy nginx phpmyadmin docker

4
推荐指数
2
解决办法
4331
查看次数

是否可以在 NGINX 中合并多个响应并发送一个响应

我在一台虚拟机上运行了 Nginx/openresty 和其他一些服务。基本上 VM 接受 Openresty 上的请求,然后 openresty 将请求转发给适当的服务。例如,下面的请求分别转发到 ServiceA、ServiceB 和 ServiceC。它工作正常。

现在我需要公开一个新端点,该端点可以从所有服务 A、B 和 C 获取响应,然后返回一个合并的响应。

我不能在我的位置使用多个 proxy_pass,有人可以建议我如何实现吗?例如

http://server:80/services/refALL --> 返回来自 A、B 和 C 服务的合并响应。

lua reverse-proxy load-balancing nginx openresty

4
推荐指数
1
解决办法
1414
查看次数

NGINX代理Zeit Now部署

我有几个应用程序服务器(通过PM2)运行多个Node应用程序。

我有一台NGINX服务器,该服务器具有域的SSL证书和Node应用程序的反向代理。

在NGINX配置文件中,我使用如下的位置块设置域:

server {
        listen 443 ssl;
        server_name
          geolytix.xyz;

        ssl_certificate /etc/letsencrypt/live/geolytix.xyz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/geolytix.xyz/privkey.pem;

        location /demo {
            proxy_pass http://159.65.61.61:3000/demo;
            proxy_set_header HOST $host;
            proxy_buffering off;
        }

        location /now {
            proxy_pass https://xyz-heigvbokgr.now.sh/now;
            proxy_set_header HOST $host;
            proxy_buffering off;
        }
}
Run Code Online (Sandbox Code Playgroud)

这仅适用于应用程序服务器。Zeit Now部署的代理产生错误的网关。如果我转到部署的Zeit Now地址,则应用程序本身将按预期工作。

有人知道我是否可能会缺少一些设置以代理Zeit Now吗?

reverse-proxy nginx vercel

4
推荐指数
1
解决办法
621
查看次数