-
1 # java老菜鳥
-
2 # 蟲蟲安全
netstat -ntlp 看那個程式,佔用,這個命令-p引數可以列出來列出來監聽程序好喝程式名。
注意這個是在linux下的,在Windows下netstat也是可以用的。
比如在win下命令列搜尋Windows監聽80的有關資訊:
netstat -ano|findstr LISTENING|findstr 80
注意,上圖中最後一列為程序號,我們一半叫Pid,然後用tasklink查詢Pid號就能找到埠啟用的程式:
看我們找到了是httpd.exe既apache服務佔用了這個埠。
找出了佔用的程式就好做了,把那個服務,kill 程序號殺掉就行。windows用
taskkill /pid 4132 /F 強制停掉這個服務,/F表示強制。
然後在停掉開機啟動
chkconfig 服務名 off 關掉這個服務的開機啟動。以後就不會衝突了
window下在系統服務裡面停止這個服務。以停止apache為例子,在服務裡面設定服務屬性為手動,或者禁用就ok。
-
3 # 王海軍老師
方法/步驟
切換到nginx目錄下:
使用命令啟動
./nginx
如下圖:
提示nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
如下圖:
使用命令:fuser -n tcp 80
檢視80埠被誰佔用。
使用 kill -9 +查詢處理的pid進行關閉
如下圖:
kill 之後。重新使用./nginx命令啟動。就正常了。如下圖:
-
4 # web開發小a
nginx埠被佔用,一般是80 或者8080埠(當然nginx可以監聽很多不同的埠),檢視端口占用,通常使用 netstat命令 或者lsof命令(centos下面一般需要yum安裝)
1. netstat -tunlp | grep 埠號
2. lsof -i:埠號
以上兩個命令可以檢視使用當前埠的程式,再使用kill命令殺掉 該程序即可,netstat命令引數較多不容易記住,建議使用lsof命令
回覆列表
我提供一個排查解決的思路。
首先檢查nginx配置檢查nginx配置中使用了哪些埠,是否使用其他程式經常使用的埠號。一般來說,nginx用作http伺服器或反向代理伺服器,最常使用的是http的80埠和https的433埠,如果配置中使用了其他埠,特別是1024以下的,建議修改埠配置。
查詢佔用埠的程序如果確認nginx埠配置無誤,那就把當前佔用埠的程序找出來。現代作業系統都可以根據埠號查詢程序資訊,以linux為例,可以使用lsof 或者 netstat 命令查詢佔用埠的程序。
使用lsof命令查詢端口占用程序
使用netstat命令查詢端口占用程序
根據實際情況解決衝突找到佔用埠的程序之後,先確定該程序與nginx的關係和優先順序。
如果這個程序是nginx本身,說明nginx已經啟動了,不能重複啟動nginx;
如果這個程序是nginx要代理的程序或者不對外提供服務,可以修改這個程序的配置,讓其使用其他埠,再重新啟動;
如果這個程序已經對外提供服務,並且不能修改,則需要修改nginx相關配置,讓nginx使用其他埠;
如果這是一個你不認識的程序,那就要小心了,伺服器可能受到了攻擊,需要將其殺掉,並全面防毒。