nginx 和 httpd 一起做反向代理

nginx 和 httpd 一起做反向代理

作为多个部门的系统管理员,由于资源有限,我正在考虑在一台服务器上部署 nginx 和 httpd。(由于开发人员的要求,使用 Docker 不是一种选择)

服务器已安装 apache。如何同时安装 nginx?

好像这个问题之前已经讨论过了,现在还是这样吗?

而我则反过来

$ cat /etc/nginx/sites-available/default
##

    server {
        listen 8000;

        server_name log-dashboard-03;

        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/htpasswd.users;

        location / {
            proxy_pass http://localhost:5601;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;        
        }
    }

我可以在同一台服务器上、在同一端口但绑定到不同 IP 上运行 Apache 和 Nginx 吗? 变体仍然有效吗?(没有人想切换到另一侧,例如从 httpd 切换到 nginx 或反之亦然,并且只有一个完全可路由的内部 IP)。nginx 是第一个,但在将另一个 httpd 代理转储到这里之前,我想征求意见。(如果您想知道为什么只监听 80 和 8000,WSA 只允许某些端口 80、8000 和 5000。此外,应用程序目前设计为只能通过本地主机访问,而不能通过远程访问)

未来的 httpd:

$cat /etc/httpd/conf/httpd.conf
DocumentRoot /var/www/html

ProxyPass / http://localhost:8080/ nocanon

ProxyPassReverse / http://localhost:8080/
ProxyRequests Off

ProxyPreserveHost On

<Proxy http://localhost:8080/*>

Order deny,allow

Allow from all

</Proxy>

答案1

您不能在同一个端口上运行两个应用程序/服务。您可以在另一个端口上运行 nginx,这非常简单,只需在与 Apache 不同的端口上设置您的服务器,就像您上面已经做的那样。

如果您想在同一个端口上的不同服务器上运行两个域,您可以让 nginx 监听您想要的任何端口,然后通过 proxy_pass 将您需要的任何内容传输到 Apache。

您不妨告诉我们您想要实现什么,而不是告诉我们您如何实现它?这样您才能得到更好的建议。像向聪明的孩子解释一样解释,更新您的原始问题,然后发表评论,以便我收到通知。如果我可以添加更多内容,我会更新我的答案。

相关内容