2

我在 CentOS 上有两台服务器:Nginx(proxy) + 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

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

PS Nginx 有监听端口 80,apache 监听 81。

4

3 回答 3

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

我之前尝试restartstopand 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
于 2013-07-26T09:44:52.197 回答
2

你的问题很简单,你好像 nginx 和 apache 都在监听 80 端口,所以 nginx 发现这个端口已经在使用,你需要把 apache 移到另一个端口,比如 81,让 nginx 监听 80,因为它是将接收http请求并代理它的那个。

于 2013-07-26T04:54:36.840 回答
0

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

于 2013-07-26T09:36:53.397 回答