大家好,
我目前使用 nginx 作为 Apache 的前端代理。我已将 nginx 设置为使用端口 80,将 Apache 设置为使用 8080。但在 nginx 将请求重定向到 Apache 后,端口 8080 在浏览器中可见。有没有办法隐藏此端口而不可见,因为对于想要将其加入书签的用户来说,这会非常难看。
编辑
全部,
看起来请求直接发往 Apache,而不是先发往 nginx。有什么方法可以找出原因,以及如何让请求先发往 nginx?
在此先感谢您的帮助。
编辑
因此我重新启动了整个服务器来加载配置,并确保首先加载 nginx 而不是 Apache。
答案1
使用 nginx 的proxy_pass
指令而不是重定向。这样,nginx 将从 Apache 请求数据,但从端口 80 将其发送到浏览器本身。这称为“反向代理”,并且这是关于如何为 Ubuntu 设置的教程。
答案2
我认为你不能向用户/浏览器隐藏这些信息,但如果(我假设是这种情况)nginx和阿帕奇不在同一台主机上,您可以将端口 80 重定向到 apache 系统上的端口 8080。用户不会注意到任何事情,但谷歌在缓存/抓取您的网站时会注意到重定向,并可能放弃缓存/抓取它。
要重定向,请使用 Iptables,如下所示:
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j \
REDIRECT --to-port 8080
它可能需要适应。
答案3
在我看来,最好将 nginx 绑定在 external_ip:80 上,将 apache 绑定在 127.0.0.1:80 上,并且无需隐藏某些东西
减少操作——减少拒绝点