作为多个部门的系统管理员,由于资源有限,我正在考虑在一台服务器上部署 nginx 和 httpd。(由于开发人员的要求,使用 Docker 不是一种选择)
好像这个问题之前已经讨论过了,现在还是这样吗?
而我则反过来
$ 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。
您不妨告诉我们您想要实现什么,而不是告诉我们您如何实现它?这样您才能得到更好的建议。像向聪明的孩子解释一样解释,更新您的原始问题,然后发表评论,以便我收到通知。如果我可以添加更多内容,我会更新我的答案。