nginx啓動提示nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx啓動報錯
今天在centos7部署nginx,安裝時一切順利,但是在啓動的時候卻報錯了,提示如下錯誤:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

後經排查,原來是端口占用了。nginx默認啓動端口是80,之前剛好在這個服務器啓動了個80端口的tomcat。現解決方式如下:

安裝iptables服務
需要通過防火牆開放對外端口。如果服務器上沒有iptables服務,需要安裝。如果有,則跳過。

yum install iptables-services
systemctl mask firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service


配置端口
進入iptables配置80端口,因爲nginx默認是由80端口訪問

vi /etc/sysconfig/iptables


打開後,默認的配置信息如下(加粗部分爲新添加的):

INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6:696]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

A INPUT -p tcp -m state --state NEW -m tcp --dport 30000:30999 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

後續需要開放其它端口,也是在此文件中添加修改即可!

修改完後,保存退出文件編輯。

:wq
重啓防火牆

systemctl restart iptables.service

查看80端口被佔用的進程

lsof -i:80


通過kill命令幹掉該進程

kill -9 進程號


啓動nginx
這個時候在啓動nginx,一切正常了!

/usr/local/nginx/sbin/nginx


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章