在linux
下,/etc/httpd/conf/httpd.conf
是apache
的配置檔案。這裡面可以對很多選項進行配置,下面的內容摘自金步國翻譯的
apache
文件,描述如何配置
http server對ip
和埠的繫結。
配置apache監聽指定的位址和埠。
概述
相關模組
相關指令
apache
啟動時,會繫結本機上的位址和埠,然後等待請求的進入。預設情況下,它會監聽本機的所有位址。但是,當需要監聽特定的位址或埠或位址與埠的組合,或者需要對不同的ip位址、主機名、埠作出不同的響應(如使用虛擬主機)時,就必須明確指定。
listen
指令告訴伺服器接只受來自特定埠(或位址+埠的組合)的請求。如果listen
指令僅指定了埠,則伺服器會監聽所有的ip位址;如果指定了位址+埠的組合,則伺服器只監聽來自此特定位址上特定埠的請求。使用多個listen
指令,可以指定在多個位址和埠上進行監聽。
例如:使伺服器同時接受來自埠80和8000的請求,可以這樣寫:
listen 80
listen 8000
接受來自兩個指定的位址+埠的組合:
listen 192.170.2.1:80
listen 192.170.2.5:8000
ipv6
listen [2001:db8::a00:20ff:fea7:ccea]:80
針對ipv6的特殊考慮
有越來越多的平台開始支援ipv6 ,而apr
在大多數平台上也支援ipv6 ,使apache能夠獲得ipv6套接字,並處理通過ipv6傳送的請求。
來改變這種行為。
。要使apache僅僅只處理ipv4連線,無論你的平台是什麼或者apr是否支援,只須對所有listen
listen
0.0.0
.0:80
listen 192.170.2.1:80
怎樣與虛擬主機協同工作
listen
指令並不實現虛擬主機,它只是告訴主伺服器(main server)去監聽哪些位址和埠。如果沒有
指令,伺服器將對所有請求一視同仁;但是如果有
指令,則伺服器會對不同的位址和埠作出不同的響應。要實現虛擬主機,首先必須告訴伺服器需要監聽哪些位址和埠,然後為每個特定的位址和埠建立乙個
段來執行特定的相應。注意,如果將
段設定為伺服器沒有監聽的位址和埠,則此段無效。
後續會有相關虛擬主機的文件跟上。
2020 2 20 埠繫結和網域名稱解析
tcp伺服器的同乙個埠不能夠啟動 繫結兩次 但udp伺服器可以,但客戶端連線上以後,資訊只能傳送給最新繫結的那個伺服器端口,相當於埠被重新繫結了。網域名稱解析函式 struct hostent include struct hostent gethostent void struct hostent...
docker 修改目錄 繫結目錄 繫結埠
1 停止要修改的容器,docker進入管理系統 1 docker run it privileged pid host justincormack nsenter1 2 cd var lib docker containers ls 2 根據容器id進入容器目錄 容器id根據 docker insp...
Erlang自動繫結埠的秘密
根據tcp ip協議限制,單個ip在對外發起連線時,理論上只能發起65535個連線,通常低於1024埠號都被系統保留,要建立多於65535個連線需要繫結多個ip。所以不能任由erlang虛擬機器自己選擇ip,需要在程式中指定ip繫結到socket。而在實際過程中卻無法突破65535這個數量,無論多少...