Web-Server

lighttpd:為什麼使用埠 >= 9000 不能正常工作

  • October 8, 2012

我有一個可以正常工作的 lighttpd 伺服器。我可以通過http://vm.aaa.com:8080從外部(非本地主機)訪問該網站。讓我們假設它是一個簡單的靜態網站,沒有 php 或 mysql。

現在我想在同一台機器上複製這個網站作為測試網站(使用另一個埠)。而且我不想使用虛擬主機。所以我只是複制原始伺服器的整個文件,包括lighttpd的bin/conf/htdocs/lib/等文件夾。我做了一些必要的更改,包括更改 lighttpd.conf。

現在我很困惑的是,如果將埠更改為小於 9000 的數字,它可以完美執行。但是如果埠改成等於或大於9000的數字,lighttpd可以啟動,但是我不能從外面訪問新網站,而我可以從INSIDE訪問新網站(我是說在同一個區域網路或本地主機)。

INSIDE 的訪問日誌如下:

vm.aaa.com:9876 10.46.175.117 - - [08/Oct/2012:13:18:47 +0800] "GET / HTTP/1.1" 200 15 "-" " curl/7.12.1 (x86_64-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6"

我用來啟動 lighttpd 的命令是:

bin/lighttpd -f conf/lighttpd.conf -m lib/ -D

我的 lighttpd.conf 是這樣的:

server.modules = (
   "mod_access",
   "mod_accesslog",
)
var.rundir = "/home/work/lighttpd_9876"
server.port = 9876
server.bind = "0.0.0.0"
server.pid-file = var.rundir + "/log/lighttpd.pid"
server.document-root        = var.rundir + "/htdocs/"
var.cronolog_path = "/home/work/lighttpd_9876/cronolog/sbin/cronolog"
server.errorlog = ...
accesslog.filename = ...
...

那麼為什麼會這樣呢?我試過幾個不同的埠,還是一樣。8000和65535之間的埠不是一樣嗎?

看起來 9000 以上的埠在您的伺服器和外部客戶端之間的某處被阻止。請與nmap -sT -Pn -p 9876 vm.aaa.com您的防火牆管理員(或您的 ISP)聯繫以了解該問題。

引用自:https://serverfault.com/questions/435877