我知道您不能使用两个不同的服务器进程监听相同的端口和 IP,但显然如果您为每个进程分配一个单独的 IP 地址,这是可能的。是这样吗?我正在考虑在同一台服务器上同时运行 ningx 和 Apache(我也欢迎您就这是否是个好主意提供反馈),主要是因为理想情况下我想尝试切换到 nginx,但据说它对 Tomcat 的支持不是很好,所以我想我需要保留 apache。
有没有人做过类似的事情;有推荐的吗,以及如何去做?
答案1
apache 和 nginx 都接受要监听的地址的参数;如果您希望 apache 监听 192.168.1.100 而 nginx 监听 192.168.1.110,则需要将以下内容添加到相应的 conf 文件中:
httpd配置文件(或 /etc/apache/ports.conf,取决于发行版):
listen 192.168.1.100:80
nginx.conf:
server {
# port to listen on. Can also be set to an IP:PORT
listen 192.168.1.110:80;
. . .
答案2
是的,使用 2 个 IP 地址,您可以让 nginx 和 apache 都监听端口 80。或者,您可以将 apache 配置为在相同的 IP 地址但在不同的端口上列出,并让 nginx 代理请求 apache 域的 apache。
server {
listen 1.2.3.4:80;
server_name apache_domain.com www.apache_domain.com;
location / {
proxy_pass http://1.2.3.4:81/;
proxy_redirect http://1.2.3.4:81/ /;
...
用于监听端口 81 的 apache。