标签: reverse-proxy

如何让nginx反向代理让503错误页面传递给客户端?

我在 nginx 后面运行 Magento(电子商务 PHP 应用程序)作为运行 PHP 应用程序的 Apache 的反向代理。静态内容由 nginx 直接提供。Magento 有一个“维护模式”,它使用 503 HTTP 响应。使用我的配置,当启用维护模式时,nginx 返回一个带有 500 响应的空白页面,而不是带有 503 响应的 Magento 良好的维护模式页面。如何让nginx让503页面传递给客户端?

这是我的 nginx 配置:

上游 examplecluster { 服务器 1.2.3.4:80; }
服务器 {
  听 1.2.3.5:80;
  server_name www.example.com;
  根/var/www/example.com/www;

  # 安全
  位置 ~ (/(app/|includes/|lib/|pkginfo/|var/|report/config.xml|downloader/(pearlib|template|Maged)/)|/\.svn/|/\.ht.+ ){
    返回404;
  }

  位置 ~ \.php$ {
    proxy_pass http://examplecluster;
    proxy_redirect 默认;
  }

  # 静态内容
  地点 / {
    try_files $uri @apache;
    7d 到期;
  }

  #阿帕奇
  位置@apache {
    proxy_pass http://examplecluster;
    proxy_redirect 默认;
  }
}

nginx reverse-proxy magento

0
推荐指数
1
解决办法
4503
查看次数

如何在一个 IP 地址上运行两台服务器?

我正在运行一个 Web 服务器,现在我希望能够使用另一个也需要端口 80 的设备,但我只有一个 IP。我的网络服务器是 Ubuntu 并使用 Apache。是否有根据域名将请求重新路由到某个内部 IP 的技巧?我该怎么做?

networking routing reverse-proxy apache-2.2

0
推荐指数
1
解决办法
114
查看次数

Nginx 代理到 Apache

我正在尝试将 Nginx 设置为 Apache 的反向代理,用于在 :8080 上本地运行并通过lessico.pistacchioso.com. 当前配置导致 502 - Bad Gateway 错误。

    #/etc/apache2/ports.conf                

    Listen 127.0.0.1:8080

    <IfModule mod_ssl.c>
        # If you add NameVirtualHost *:443 here, you will also have to change
        # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
        # to <VirtualHost *:443>
        # Server Name Indication for SSL named virtual hosts is currently not
        # supported by MSIE on Windows XP.
        Listen 443
    </IfModule>

    <IfModule mod_gnutls.c>
        Listen 443
    </IfModule>
Run Code Online (Sandbox Code Playgroud)

然后

    #/etc/apache2/sites-enabled/lessico
    NameVirtualHost 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
    ServerAdmin webmaster@localhost
    ServerName lessico.pistacchioso.com …
Run Code Online (Sandbox Code Playgroud)

nginx reverse-proxy apache-2.2

0
推荐指数
1
解决办法
4223
查看次数

将 SSH 连接透明地转发到 NATed 服务器

我已经尝试了很长时间,但还没有找到好的解决方案。我在 NAT 后面有几台服务器,它们都运行 SSH 守护程序。其中一台机器是我的主服务器,它将 SSH 端口转发给它。我想要的基本上是通过主服务器打开与其他 NATed 服务器的连接,类似于我可以通过打开与主服务器的连接然后通过 SSH 连接到目的地。由于有一些应用程序运行在 SSH 之上,我想让它自动化,以便在连接本身之上运行 rsync 或 git。

SSH 有反向代理吗?

ssh reverse-proxy

0
推荐指数
1
解决办法
353
查看次数

使用 Apache 通过 HTTPS 隧道传输 HTTP

是否可以为 HTTP 服务器提供 HTTPS 前端?

让我详细说明一下。假设我有一个在 tomcat 实例上运行的应用程序,这个应用程序只理解 HTTP。是否可以让 Apache 坐在 tomcat 应用程序前面并代理请求,如下所示:

        http://example.com/proxied_app                     http://localhost:8080
                       +----------+                        +----------+
                       |          |                        |          |
                       |          |                        |          |
Internet <----HTTPS--->|  APACHE  |<---------HTTP--------->|  TOMCAT  |
                       |          |                        |          |
                       |          |                        |          |
                       +----------+                        +----------+
Run Code Online (Sandbox Code Playgroud)

tomcat proxy reverse-proxy apache-2.2

0
推荐指数
1
解决办法
1563
查看次数

反向代理不提供本地错误页面

我在 Windows Server 2008 R2 上有一个 Apache 2.4 服务器,用作反向代理。它一直运行良好,并为大约 15 个虚拟主机提供服务。每当主机出现故障时,我想显示一个网页,指示服务器暂时关闭。我将自定义错误文件放在 htdocs 文件夹中名为 errors 的文件夹中。我在 httpd.conf 文件中有以下指令:

ErrorDocument 500 /errors/default.html
ErrorDocument 502 /errors/default.html
ErrorDocument 503 /errors/default.html
ErrorDocument 504 /errors/default.html
ErrorDocument 400 /errors/default.html
ErrorDocument 404 /errors/default.html
ErrorDocument 408 /errors/default.html

<Directory "C:/Program Files/Apache Software Foundation/Apache2.4/htdocs/errors"> 
Order deny,allow 
Allow from all 
</Directory> 
Run Code Online (Sandbox Code Playgroud)

我关闭了一台代理服务器来测试错误页面,我看到以下内容:

服务不可用 由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。请稍后再试。

此外,在尝试使用 ErrorDocument 处理请求时遇到 503 Service Unavailable 错误。

如果我使用文本错误消息,例如“服务器当前离线”,那么我确实会看到该文本显示。如果我引用外部 Web 服务器来提供页面,那么我会看到从该服务器提供的页面。几乎就好像 Apache 服务器只是代理请求,无法为本地错误页面提供服务。

我猜我需要添加或更改虚拟主机条目以允许 Apache 服务器提供本地页面(错误页面),但由于服务器仅由 DNS 中的 IP 引用,我不知道该怎么做(它是使用命名主机)。我只是假设错误页面将由 Apache 正确提供而无需额外配置(除了允许对包含错误页面的文件夹的权限并在 ErrorDocument 条目中引用它们)。

我错过了什么?自定义错误文档的设置看起来很简单,但我无法从代理本身提供它们。

reverse-proxy custom-errors apache-2.2

0
推荐指数
1
解决办法
3590
查看次数

nginx 上游不工作

upstream当代理服务器在同一端口上绑定多个主机名时,此功能不起作用。

我在尝试将nginx (1.9.12-1~trusty)配置到Windows Server 2012proxy_pass主机时遇到了这个问题。

我在自己的Windows 10机器上重现了相同的行为。

在下面的配置中,所有主机名都指向同一机器 IP。

有时要求工作

注意:我预计这是localhost:7778选择代理的时间。

http {
    upstream w {
        server test1:80;
        server test2:80;
        server localhost:7778;
    }

    server {
        listen       8001;
        server_name  localhost;

        location / {
            proxy_pass http://w;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请求始终不起作用

注:按照 Alexey 指出的进行编辑。

http {
    upstream w {
        server test1:80;
        server test2:80;
        # server localhost:7778;
    }

    server {
        listen       8001;
        server_name  localhost;

        location / {
            proxy_pass http://w;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

iis nginx reverse-proxy proxypass

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

如果我们有负载均衡器,为什么我们需要反向代理?

我主要担心的是,由于反向代理路由是静态的,它如何替换在检查服务器健康状况时动态路由请求的负载均衡器?那么我们真的需要反向代理吗?

reverse-proxy load-balancing amazon-web-services

0
推荐指数
1
解决办法
1978
查看次数

如何在带有 cisco 路由器的多内部 Web 服务器中发布具有相同端口 80 的多网站?

我在使用单个公共 IP 的多 Web 服务器中发布多网站时遇到问题,所有这些网站都使用相同的默认端口 80 但具有不同的 URL 地址。

我想使用默认的 Http 端口 80 在 Internet 上发布所有这些网站,并且不更改 Cisco Router 的内部 Web 服务器中的默认端口 http。

可以帮我发布这些网站。

此问题的我的网络架构:

网络架构


我建议使用以下 cisco 命令来解决此问题:

请告诉我你的意见:


类映射匹配所有 cweb1

       match protocol http url "www.test-A.com"
Run Code Online (Sandbox Code Playgroud)

策略映射 pweb1

      class cweb1
Run Code Online (Sandbox Code Playgroud)

路线图 rweb1 允许 10

      match policy-list pweb1
Run Code Online (Sandbox Code Playgroud)

ip nat inside source static 192.168.0.10 280.200.150.10 路由映射 rweb1


但我在这些命令中的问题是我不能使用这些命令发布超过 1 个网站。

如果将这些命令用于 1 个以上的网站 cisco 路由器,会给我一个“错误”。

你有解决这些 cisco 命令的解决方案吗?

cisco router reverse-proxy

-3
推荐指数
1
解决办法
592
查看次数