标签: reverse-proxy

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

nginx 作为上游 SSL 的反向代理

我正在为内部 API 构建代理,以允许客户端连接而无需安装自签名证书。

客户端(构建、拥有和仅在内部使用)将通过 SSL 连接到 nginx 框,在那里我使用XSendfile在应用程序级别(一个 Rails 应用程序)验证凭据。如果凭据有效,则连接将传递回 nginx,在那里它使用 proxy_pass 将连接发送到上游服务器。

现在这适用于标准的 http 连接,但我正在尝试弄清楚如何将我们的证书添加到混合中。

这个问题几乎是相同的这一个,但尴尬的证书要求。

这甚至可能与 nginx 一起使用吗?有更好的解决方案吗?

我也满足于从客户端的 http -> nginx,以及从 nginx 到 API 的自签名证书。

ssl nginx reverse-proxy

30
推荐指数
3
解决办法
9万
查看次数

什么是反向代理?

我知道代理是什么,但我不确定反向代理是什么。在我看来,它可能类似于负载均衡器。那是对的吗?

reverse-proxy

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

修改nginx反向代理返回的HTML页面

我有一个反向代理设置,用于从 Internet 访问位于 Intranet 内的第三方应用程序。假设此应用程序位于 URL 上:

https://internalserver:8080/ (只能从内联网访问)

并且代理在:

https://proxyserver/ (可从世界任何地方到达)

代理由 nginx 管理并且工作正常。当用户访问时,https://proxyserver/ 他们会在https://internalserver:8080/.

问题在于应用程序在 HTML 响应中写入绝对 URL,因此,当用户单击指向新页面的链接时,浏览器会尝试使用其内部名称定位页面,例如, https://internalserver:8080/somepage 而不是 https://proxyserver/somepage

我知道这是一个程序错误,但我无法修改程序。

我可以拦截响应,修改 URL 并使用 nginx 将其(修改后)发送到最终客户端吗?或者也许使用其他工具?

编辑:我之前看过这个问题,但我的情况更具体,引用的问题要求进行通用修改。在这种情况下,fast-cgi ad hoc 程序是最好的解决方案,我想要的是(我认为)更常见场景的更具体的解决方案。虽然快速 cgi 程序可以工作,但我正在寻找一种最简单、可能更强大并在现实世界中得到证明的解决方案,适用于这种情况。

nginx reverse-proxy

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

Nginx 配置:前端反向代理到另一个端口

我有一个小型 Web 服务器,它在端口 5010 而不是 80 上提供请求。

我想使用 nginx 作为前端代理来接收端口 80 上的请求,然后让这些请求由端口 5010 处理。

我已经成功安装了 nginx,它在 Ubuntu Karmic 上运行流畅。

但是,我尝试重新配置默认的 nginx.conf 并没有成功。

我尝试在服务器指令中包含端口 5010 的监听参数。

我也尝试过 proxy_pass 指令。

有关需要进行更改的任何建议或需要设置的指令,以便仅进行端口转发。

ubuntu nginx reverse-proxy ubuntu-9.10

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

反向代理可以将 SNI 与 SSL 传递一起使用吗?

我需要使用一个外部 IP 地址通过 https 为多个应用程序提供服务。

不应在反向代理上管理 ssl 证书。它们安装在应用程序服务器上。

是否可以将反向代理配置为使用 SNI 并通过 ssl 在端点处终止?

这可以使用 Nginx 或 Apache 之类的东西吗?配置是什么样的?

https reverse-proxy sni

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

如何根据 Nginx 中的子域反向代理到不同的地方?

我有多个子域,都指向一台机器和一个 IP 地址。在这台机器上,我想让 nginx 充当反向代理,并且根据用于访问机器的子域,我希望它反向代理到不同的服务器。我见过的所有使用 nginx 作为反向代理的示例都使用location,但据我所知,这仅适用于路径,不适用于不同的子域。我怎样才能达到我想要的?

nginx proxy reverse-proxy subdomain

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

如何使用 nginx 反向代理正确处理相对 url

当然,我不是第一个尝试从 为域提供服务example.com的人example.net/bbb,但我还没有找到解决方案。

我的 NGINX 配置遵循指导方针,看起来像这样:

server {
    listen 80;
    server_name example.net;
    root /path/to/aaa;

    location /bbb/ {
        proxy_pass http://example.com/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location / {
        try_files $uri $uri/ /index.html;
    }
    location ~ \.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {
        access_log off;
        log_not_found off;
        expires max;
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以设法渲染example.comin的根,example.net/bbb但是:

问题 1

example.net/bbb/some/path预期和不工作index.htmlexample.net呈现。

问题 2

中的任何资产example.com/assets都会给出 404,因为浏览器会查找example.net/assets. 如果我能在不到处放置绝对路径的情况下解决这个问题,那就太好了。

nginx reverse-proxy proxypass

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

代理:错误 AH00898:与远程服务器的 SSL 握手期间出错

我有一台服务器,它充当网络中 cPanel 邮件服务器的前端。前端服务器上的 apache 代理运行了 152 天没有故障然后突然我现在在使用它访问邮件服务器的 web 邮件客户端时出现 500/502 错误。

前端服务器使用签名 SSL 证书,cPanel 服务器使用自签名证书。这是前端服务器第一次开始发生时的错误日志输出:

[Tue Sep 10 18:22:52.959291 2013] [proxy:error] [pid 19531] (502)Unknown error 502: [client 173.xx.xx.xx:9558] AH01084: pass request body failed to 184.xx.xx.xx:2096 (184.xx.xx.xx), referer: https://domain.com:2096/cpsess12385596/3rdparty/roundcube/?_task=mail&_refresh=1&_mbox=INBOX

[Tue Sep 10 18:22:52.959469 2013] [proxy:error] [pid 19531] [client 173.xx.xx.xx:9558] AH00898: Error during SSL Handshake with remote server returned by /cpsess12385596/3rdparty/roundcube/, referer: https://domain.com:2096/cpsess12385596/3rdparty/roundcube/?_task=mail&_refresh=1&_mbox=INBOX

前端服务器是运行Apache/2.4.6 (Amazon) My VirtualHost的 EC2 实例,此服务器上的代理设置如下:

< VirtualHost *:2096> ServerName domain.com

SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN …
Run Code Online (Sandbox Code Playgroud)

ssl reverse-proxy amazon-ec2 apache-2.2

21
推荐指数
2
解决办法
8万
查看次数

Nginx:如何完全禁用请求正文缓冲

我正在尝试在我的 Ubuntu机器上设置Madsonic并在它前面运行 Nginx。问题是,当我尝试通过 Web 界面上传内容时,我不断收到此警告:

31115#0: *14 a client request body is buffered to a temporary file
Run Code Online (Sandbox Code Playgroud)

这也解释了为什么上传窗口上的进度条不起作用。这是我的相关 Nginx 配置:

    # proxy the madsonic server here
    location / {
            proxy_pass                      https://madsonic-server/;
            proxy_redirect                  off;
            proxy_buffering                 off;
            proxy_request_buffering         off;
            allow                           all;
            proxy_http_version              1.1;

            proxy_set_header                Host $http_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-Host $server_name;
            proxy_set_header                X-Forwarded-Proto $scheme;

            client_body_buffer_size         0;
            client_max_body_size            0;
            proxy_max_temp_file_size        0;
            proxy_read_timeout              18000;
            proxy_send_timeout              18000;

            gzip                            off;
    }
Run Code Online (Sandbox Code Playgroud)

我目前使用的是 Nginx 1.9.12。

我想要实现的是让 Nginx 根本不使用请求正文缓冲区, …

nginx reverse-proxy buffer

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