Nginx(代理)+ Apache:两个进程监听相同的端口

时间:2013-07-25 18:36:09

标签: linux apache nginx centos

我在CentOS上有两台服务器:Nginx(代理)+ Apache。 我需要重新启动Nginx,但如果我尝试在重新启动之前测试配置,我有下一个错误:

[root@vm5808 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (98: Address already in use)
nginx: configuration file /etc/nginx/nginx.conf test failed

我如何解决这个问题?谢谢!

P.S。 Nginx有监听端口80,apache听81。

3 个答案:

答案 0 :(得分:6)

我不知道为什么会出现这个错误,但是在我做完之后

[root@vm5808 ~]# /etc/init.d/nginx stop  
Stopping nginx:                                            [  OK  ]
[root@vm5808 ~]# /etc/init.d/nginx start
Starting nginx:                                            [  OK  ]

错误消失了:

[root@vm5808 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

我在restartstop之前尝试了start,但是Nginx不会重启:

[root@vm5808 ~]# /etc/init.d/nginx restart
nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (98: Address already in use)
nginx: configuration file /etc/nginx/nginx.conf test failed

答案 1 :(得分:2)

你的问题很简单,你似乎在端口80上都有nginx和apache监听,所以nginx找到已经在使用的端口,你需要将apache移动到另一个端口,例如81,并让nginx监听80 ,因为它是接收http请求并代理它的那个。

答案 2 :(得分:0)

检查apache中的所有虚拟主机,可能其中一个正在侦听端口80