回覆列表
  • 1 # java老菜鳥

    我提供一個排查解決的思路。

    首先檢查nginx配置

    檢查nginx配置中使用了哪些埠,是否使用其他程式經常使用的埠號。一般來說,nginx用作http伺服器或反向代理伺服器,最常使用的是http的80埠和https的433埠,如果配置中使用了其他埠,特別是1024以下的,建議修改埠配置。

    查詢佔用埠的程序

    如果確認nginx埠配置無誤,那就把當前佔用埠的程序找出來。現代作業系統都可以根據埠號查詢程序資訊,以linux為例,可以使用lsof 或者 netstat 命令查詢佔用埠的程序。

    使用lsof命令查詢端口占用程序

    使用netstat命令查詢端口占用程序

    根據實際情況解決衝突

    找到佔用埠的程序之後,先確定該程序與nginx的關係和優先順序。

    如果這個程序是nginx本身,說明nginx已經啟動了,不能重複啟動nginx;

    如果這個程序是nginx要代理的程序或者不對外提供服務,可以修改這個程序的配置,讓其使用其他埠,再重新啟動;

    如果這個程序已經對外提供服務,並且不能修改,則需要修改nginx相關配置,讓nginx使用其他埠;

    如果這是一個你不認識的程序,那就要小心了,伺服器可能受到了攻擊,需要將其殺掉,並全面防毒。

  • 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命令

  • 中秋節和大豐收的關聯?
  • 形容珠寶的詞語?