(轉)建站知識:域名/ 空間/ IP/ 端口之間的關系


     先說域名解析吧,比如說你的域名是 www.sunnymould.com,這個域名對應着一個IP地址,域名解析就是把上面的域名轉換成這個IP地址的過程,這樣你就可以域名訪問了上面地址上的內容了。

端口映射就是說,當你訪問 www.sunnymould.com的時候,其實就是訪問了一個IP地址的某個端口,而這個IP地址后面也許存在着一個局域網,這樣我們就要指定網絡訪問這個IP的端口時候,指向哪個服務器(就是說WEB服務器是內網的哪個IP地址),比如內網WEB服務器地址為192.168.37.4,這樣我們就需要在路由器中把 80端口指向這個內網IP。文件傳播的過程我不懂怎么說,一般來說文件傳播使用的是FTP協議,TCP協議也有。詳細情況你就要看看具體的書。

內網IP端口映射到外網IP的端口

端口映射又叫做端口轉發、虛擬服務器,不同的寬帶路由器的命名有所不同。內網的一台電腦要上因特網對外開放
服務或接收數據,都需要端口映射。
端口映射
端口映射分為動態和靜態。     
 
動態端口映射:內網中的一台電腦要訪問網站,會向NAT網關發送數據包,包頭中包括對方網站IP、端口和本機IP、
端口,NAT網關會把本機IP、端口替換成自己的公網IP、一個未使用的端口,並且會記下這個映射關系,為以后轉發
數據包使用。然后再把數據發給網站,網站收到數據后做出反應,發送數據到NAT網關的那個未使用的端口,
然后NAT網關將數據轉發給內網中的那台電腦,實現內網和公網的通訊.當連接關閉時,NAT網關會釋放分配給這條
連接的端口,以便以后的連接可以繼續使用。動態端口映射其實也就是NAT網關的工作方式。
靜態端口映射:就是在NAT網關上開放一個固定的端口,然后設定此端口收到的數據要轉發給內網哪個IP和端口,
不管有沒有連接,這個映射關系都會一直存在。就可以讓公網主動訪問內網的一台電腦。
比喻:端口映射過程就如同:你家在一個小區里B棟2410室,你朋友來找你,找到小區門口,不知道你住哪層哪號?
就問守門的保安,保安很客氣的告訴了他你家詳細門牌,所以你朋友很輕松的找到了你家。這個過程就是外網訪問內
網通過端口映射的形象比喻。
 

將域名解釋到服務器地址的非80端口

訪問網址的時候端口號是必然存在的,但是域名只能解析到IP,而解析不到端口,並且默認的Http端口是80。
這個不是因為域名解析的問題。可以通過web服務器設置解決問題。如果80端口已被占用,那就沒有辦法。除非你使用隱藏的域名轉發(Url轉發),但是實際還要加還是訪問到了IP:port。
    不隱藏路徑域名轉發:訪問域名,自動跳轉到指定的網絡路徑后,瀏覽器的地址欄里顯示的地址自動變為顯示真正的目標地址。
    隱藏路徑的域名轉發: 訪問域名,自動跳轉到指定的網絡路徑后,瀏覽器的地址欄里顯示的地址顯示的地址保持不變,但實際訪問到的是跳轉后的內容。

配置nginx,網站只有在域名或IP后添加端口才能順利訪問

nginx配置:
[php]  view plain  copy
 
  1. server {  
  2.         listen       8083 ;  
  3.         server_name  域名;  
  4.   
  5.         location / {  
  6.   
  7.             index  index.html index.htm index.jsp;  
  8.             #proxy_redirect off;  
  9.             proxy_set_header Host $host;  
  10.             proxy_set_header X-Real-IP $remote_addr;  
  11.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;   
  12.             proxy_pass http://127.0.0.1:8081/;  
  13.         }                         
  14. }  
直接通過域名無法訪問,加個8081端口之后就能順利訪問了,直接IP+端口的方式也可以。
nginx配置成監聽8083端口了,因此只能使用指定端口才能訪問,但是修改listen 8083這句改成listen 80,后直接使用域名又能訪問到了網站。
直接訪問IP或域名,ngnix設置監聽到8083端口后,所有來自80端口的請求都會轉發的8083端口。因為在nginx之外還有個防火牆,將所有通過80端口的請求都轉到8083端口。
防火牆添加-A INPUT -p tcp -m tcp --dport 8083 -j ACCEPT之后,可以通過一直訪問網站。
 

域名的二級域名映射到內網IP提供Web服務

問題描述:
公司有一網站www.abc.com,前兩天申請了一個二級域名,www.oa.abc.com.並且做了相應的解析。在網站首頁有一個OA登錄入口,此入口與二級域名www.oa.abc.com綁定。我們公司有一個單獨的OA服務器,服務器是內網IP地址。現在的問題是:怎么才能通過網站首頁的OA登錄入口進入到OA辦公系統??服務器內網IP:192.168.1.6端口8181。
解決方案:
①: 
把內部OA  ip和端口映射到公網IP和端口,
www.oa.abc.com 解析到OA公網的IP:8181地址即可。
 

內網的IP地址和互聯網的域名綁定

按照如下步驟輕松解決綁定問題~~~
1.登陸你的路由器,就是帶你局域網內主機上網的設備。查看他所擁有的IP地址。
2.在你申請域名的網站上填寫相關參數,使其域名和IP(公網)對應。
3.在路由器上DDNS上將域名和你路由器的外網IP綁定。做完這三個步驟,外網就可以通過該域名訪問到你的路由設備了。但是仍不是你的服務器。那么繼續
4.在路由器上虛擬服務器或者端口映射(一個功能的不同叫法)中,將你服務所需要開放的端口映射出去,同時映射80端口(否則在訪問時需要在域名后加端口號如:http://woaijigeci.com.cn:1653,如果把80也映射出去,直接輸入域名就好了,對於一些用戶你跟他說端口他也不懂)。添加相應規則。
5.完成以上步驟,就可以實現你說的功能了。

外網到內網端口映射

問題描述:公司用得是2003server的操作系統,但是用的是局域網IP,我想在路由器上做個端口映射,也就是我把公司的電腦給開着,從別的地方可以遠程連接到公司的這台電腦上。
解決方案:遠程那台主機最快捷簡單的方式就是開啟路由器的DMZ模式。
 在路由器中找到DMZ選項,指定DMZ的地址為你要鏈接的主機局域網IP地址就可以。
如果路由器不支持dmz主機,就要使用NAT了,中文名似乎叫做網絡地址轉換,這個路由肯定是支持的。使用NAT來實現端口映射,設置公網的IP端口轉接到你遠程內網IP端口即可。

二級域名映射到內網服務器IP端口

問題描述:
現在公司內網服務器已經映射到公網IP,並對公網IP做了域名解析,但是在內網輸入域名直接打開防火牆登陸。
內網一台服務器的IP已經映射到公網IP了,80端口到80端口,現在公網IP也做了二級域名解析,想讓不論在外網還是在內網的電腦都能通過用二級域名訪問服務器應該怎么弄啊?
滿意回答
內部需要做DNS,如果使用域控的話,只需要在DNS中添加個域名解析就可以,如果沒有就需要新建DNS服務了,比較麻煩,也可以直接在防火牆中做一個允許這個域名的所有連接策略即可。

怎么在一個ip上綁定多個域名

Windows Server 服務器
Windows 2000 Server安裝成功后,一般會啟動一個默認的Web站點,為整個網絡提供Internet服務。在中小型局域網中,服務器往往只有一台,但是一個Web站點顯然又無法滿足工作需要。那么,能否在一台服務器上設置多個Web站點(以下我們簡稱為“一機多站”)呢?答案是肯定的,並有多種途徑可以達到這一目的。我們知道,網絡上的每一個Web站點都有一個惟一的身份標識,從而使客戶機能夠准確地訪問。這一標識由三部分組成,即TCP端口號、IP地址和主機頭名,要實現“一機多站”就需要在這三個方面下工夫。
現在我們有一台Windows 2000 Server服務器,在這台服務器上要建立默認站點“教師之家”和新增站點“學生天地”(建立更多網站原理相同),下面我們分別探討三種不同的實現途徑。
途徑一 TCP端口法
我們知道Web站點的默認端口一般為80,如果改變這一端口,就能實現在同一服務器上新增站點的目的。
假設服務器名為Master,安裝有一塊網卡,IP地址為192.168.0.1,那么安裝IIS后會自動生成一個默認Web站點,我們就將其作為“教師之家”網站。點擊“開始”→“程序”→“管理工具”→“Internet服務管理器”,出現“Internet信息服務”窗口(請見附圖)。右鍵單擊“默認Web站點”,選擇“屬性”進行設置。在“Web站點標識”中,將說明改為“教師之家”,IP地址選擇192.168.0.1,TCP端口保持默認的80不變。將制作好的網站文件拷貝到默認目錄中,“教師之家”的設置就算完成了。
下面我們來增加“學生天地”站點。在“Internet信息服務”窗口中單擊選定主機名Master,然后選擇“操作”→“新建”→“Web站點”,出現“Web站點創建向導”窗口,依次點擊[下一步],將站點說明定為“學生天地”,IP地址選擇192.168.0.1,在TCP端口欄一定要將默認的80修改為其他值,如1050,選定主目錄,設置好訪問權限,“學生天地”站點的設置也完成了。
測試一下效果,在瀏覽器地址欄中輸入http://192.168.0.1(默認的端口號80可以省略),回車,我們將訪問到“教師之家”站點。輸入http://192.168.0.1:1050(注意IP地址后的端口號一定不能少),則會出現“學生天地”站點。遺憾的是,采用這種方式設置的多站點無法與DNS結合使用。
途徑二 IP地址法
一般情況下,一塊網卡只設置了一個IP地址。如果我們為這塊網卡綁定多個IP地址,每個IP地址對應一個Web站點,那么同樣可以實現“一機多站”的目的。
點擊“開始”→“設置”→“控制面板”,雙擊“網絡和撥號連接”,右鍵單擊“本地連接”,選擇“屬性”調出“本地連接屬性”面板,選擇“Internet協議(TCP/IP)”,點擊“屬性”調出“Internet協議(TCP/IP)屬性”面板,點擊下方的“高級”調出“高級TCP/IP設置”面板。在IP地址欄下面列出了網卡已設定的IP地址和子網掩碼,點擊[添加]按鈕,在彈出的對話框中填上新的IP地址(如192.168.0.2,注意不能與其他機器的IP地址重復),子網掩碼與原有的相同(如255.255.255.0)。然后依次[確定],就完成了多個IP地址的綁定。
按照上例中的做法設置默認站點“教師之家”,然后我們來增加“學生天地”站點。在“Internet信息服務”窗口中單擊選定主機名Master,選擇“操作→“新建”→“Web站點”,出現“Web站點創建向導”窗口,依次點擊[下一步],將站點說明定為“學生天地”,IP地址選擇192.168.0.2(注意不能與默認站點的IP地址相同),TCP端口保持默認的80不變,選定主目錄,設置好訪問權限,“學生天地”站點的設置完成。
分別在瀏覽器地址欄中輸入http://192.168.0.1和http://192.168.0.2,測試一下效果。如果您嫌通過輸入IP地址訪問站點不夠方便的話,完全可以通過設置DNS,用http://www.teacher.com代替http://192.168.0.1來訪問“教師之家”,用http://www.student.com代替http://192.168.0.2來訪問“學生天地”。
途徑三 主機頭法
在不更改TCP端口和IP地址的情況下,同樣可以實現“一機多站”,這里我們需要使用“主機頭名”來區分不同的站點。
所謂“主機頭名”,實際上就是指www.student.com之類的友好網址,因此要使用“主機頭法”實現“一機多站”,就必須先進行DNS設置。在DNS中設置http://www.teacher.com和http://www.student.com兩個網址,將它們都指向惟一的IP地址192.168.0.1。
按照以上兩例中的做法首先設置默認站點“教師之家”,由於是默認站點,因此基本無需進行特別設置。然后參考以上兩例進行添加“學生天地”站點的操作,IP地址選擇192.168.0.1,TCP端口保持默認的80不變,“此站點的主機頭”一項一定要填上www.student.com,然后選定主目錄,設置好訪問權限,“學生天地”站點的設置完成。
分別在瀏覽器地址欄中輸入http://www.teacher.com和http://www.student.com兩個網址,測試效果。與上兩例不同的是,用“主機頭法”實現的“一機多站”必須使用友好網址才能訪問。以上三種方式,您可以根據具體情況選擇使用。如果服務器安裝有兩塊以上的網卡,同樣可以采用“IP地址法”為每塊網卡指定不同的IP地址,從而實現“一機多站”。 

Apache服務器同一IP綁定多個域名

ServerName server.domain.com
DocumentRoot /www/mainserver
# 這是另外一個IP地址
NameVirtualHost 172.20.30.50
DocumentRoot /www/example1
ServerName www.example.com
# 你可以在這里添加其他指令 ...
DocumentRoot /www/example2
ServerName www.example.org
# 你可以在這里添加其他指令 ...
任何不是針對172.20.30.50的請求都將由主服務器來伺服。而提交給172.20.30.50卻沒有主機名或沒有”Host:”頭的請求,都將由ww.example.com伺服。
在不同的IP的地址(比如一個內部和一個外部地址)上提供相同的內容
服務器有兩個IP地址(192.168.1.1和172.20.30.40)。這個機器位於內部(局域網)網絡和外部(廣域網)之間。在外部,域名server.example.com指向外部地址(172.20.30.40),而在內部則指向內部地址(192.168.1.1)。
服務器可以為來自內部和外部的請求提供同樣的內容,您只需要一個配置段就可以了。
服務器配置
NameVirtualHost 192.168.1.1
NameVirtualHost 172.20.30.40
DocumentRoot /www/server1
ServerName server.example.com
ServerAlias server
現在,從不同的網絡提交的請求都會由同一個段來伺服。
注意
在內網中,您可以使用server這個名字來代替server.example.com這個全名。
跟上面一樣,在上述的例子里,您可以用”*”來代替具體的IP地址,這樣就可以對所有的地址都返回相同的內容了。
在不同的端口上運行不同的站點
如果您想讓同一個IP的不同端口伺服多個域名。您可以借助在NameVirtualHost指令中定義端口的方法來達到這個目的。如果您想使用不帶”name:port”的或是直接用Listen指令,您的配置將無法生效。
服務器配置
Listen 80
Listen 8080
NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080

ServerName www.example.com
DocumentRoot /www/domain-80

ServerName www.example.com
DocumentRoot /www/domain-8080

ServerName www.example.org
DocumentRoot /www/otherdomain-80

ServerName www.example.org
DocumentRoot /www/otherdomain-8080
建立基於IP的虛擬主機
一個有兩個IP地址(172.20.30.40和172.20.30.50)分別對應域名www.example.com和www.example.org的配置如下:
服務器配置
Listen 80
DocumentRoot /www/example1
ServerName www.example.com

DocumentRoot /www/example2
ServerName www.example.org
如果存在主服務器,那么對沒有出現在任一個段中的請求(比如,對localhost的請求)都會由主服務器來伺服。
混用基於端口和基於IP的虛擬主機
如果您的服務器有兩個IP地址(172.20.30.40和172.20.30.50)分別對應域名www.example.com和www.example.org 。對每個域名,您都希望在80端口和8080端口發布您的網站。您可以這樣配置:
服務器配置
Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080

DocumentRoot /www/example1-80
ServerName www.example.com

DocumentRoot /www/example1-8080
ServerName www.example.com

DocumentRoot /www/example2-80
ServerName www.example.org

DocumentRoot /www/example2-8080
ServerName www.example.org
混用基於域名和基於IP的虛擬主機
您想在一些地址上配置基於域名的虛擬主機而在另外一些地址上配置基於IP的虛擬主機。
服務器配置
Listen 80
NameVirtualHost 172.20.30.40
DocumentRoot /www/example1
ServerName www.example.com

DocumentRoot /www/example2
ServerName www.example.org

DocumentRoot /www/example3
ServerName www.example3.net
# IP-based
DocumentRoot /www/example4
ServerName www.example4.edu

DocumentRoot /www/example5
ServerName www.example5.gov
將和mod_proxy模塊一起使用
下面的例子允許一個前端機器代理一個運行在其他機器上的虛擬主機。在如下示例中,在192.168.111.2機器上配置了一個同名的虛擬主機。這樣,萬一在同一台機器上代理了多個主機名,ProxyPreserveHostOn 指令能確保指定的主機名順利通過代理。
ProxyPreserveHost On
ProxyPass / http://192.168.111.2
ProxyPassReverse / http://192.168.111.2/
ServerName hostname.example.com
使用”_default_”虛擬主機
為所有端口配置”_default_”虛擬主機
這樣配置可以捕獲所有指向沒指定的IP地址和端口的請求。比如:一個沒被任何虛擬主機使用的地址/端口對。
服務器配置
DocumentRoot /www/default
這樣一個使用通配符端口的默認虛擬主機可以有效的防止請求被主服務器接收。
如果一個地址/端口對已經被一個基於域名的虛擬主機使用,那么”_default_”虛擬主機決不會處理發向這個地址/端口對的請求。如果一個”Host:”請求頭中包含未知信息,或者干脆就沒有,那么它會被第一個基於域名的虛擬主機(也就是在配置文件中最先出現的使用了那個地址/端口對的虛擬主機)處理。
您可以用AliasMatch或RewriteRule來重寫任何請求,使它指向一個簡單信息頁面(或腳本)。
為不同的端口配置”_default_”虛擬主機
與第一種一樣,但我們想讓服務器偵聽很多端口而第二個”_default_”虛擬主機單獨偵聽80端口。
服務器配置
DocumentRoot /www/default80
# ...
DocumentRoot /www/default
# ...
偵聽80端口的”_default_”虛擬主機(必須出現在所有使用通配符端口的虛擬主機之前)會捕獲所有發向一個未指定的IP地址的請求。主服務器將不會用於伺服任何請求。
為單獨一個端口配置”_default_”虛擬主機
如果我們只想在80端口上建立唯一的一個”_default_”虛擬主機,我們應該這樣配置:
服務器配置
DocumentRoot /www/default
...
發向一個未指定地址的80端口的請求將會由這個虛擬主機伺服;而發向未設定地址的其他端口的請求則由主服務器伺服。
將一個基於域名的虛擬主機移植為一個基於IP的虛擬主機
如果一個具有ww.example.org域名的虛擬主機(就是基於域名配置示例中的第二個)得到了自己的IP地址。為了避免一些域名服務器或代理服務器在移植期間仍對這個域名做老的解析,我們可以采用一種過渡方法:同時提供新舊兩個IP地址的解析。
達到這個目的很簡單。因為我們只要簡單的把新地址(172.20.30.50)加入VirtualHost指令就行了。
服務器配置
Listen 80
ServerName www.example.com
DocumentRoot /www/example1
NameVirtualHost 172.20.30.40

DocumentRoot /www/example2
ServerName www.example.org
# ...

DocumentRoot /www/example3
ServerName www.example.net
ServerAlias *.example.net
# ...
現在這個虛擬主機就可以用新地址(表現為一個基於IP的虛擬主機)和舊地址(表現為一個基於域名的虛擬主機)同時進行訪問了。
使用ServerPath指令
如果我們在 同一個服務器上運行了兩個基於域名的虛擬主機。為了匹配正確的虛擬主機,客戶端必須發送正確的”Host:” 頭。而舊的使用HTTP/1.0的客戶端無法發送這樣的頭,這樣Apache就無法辨別客戶端想要連接哪個虛擬主機(會用主虛擬主機來伺服這個請求)。為 了盡量提供向下兼容性,我們可以提供一個主虛擬主機來返回一個頁面,在頁面中加入指向基於域名的虛擬主機的URL前綴的鏈接。
服務器配置
NameVirtualHost 172.20.30.40
# 主虛擬主機
DocumentRoot /www/subdomain
RewriteEngine On
RewriteRule ^/.* /www/subdomain/index.html
# ...
DocumentRoot /www/subdomain/sub1
ServerName www.sub1.domain.tld
ServerPath /sub1/
RewriteEngine On
RewriteRule ^(/sub1/.*) /www/subdomain$1
# ...
DocumentRoot /www/subdomain/sub2
ServerName www.sub2.domain.tld
ServerPath /sub2/
RewriteEngine On
RewriteRule ^(/sub2/.*) /www/subdomain$1
# ...
由於ServerPath指令的作用,發送到htp://www.sub1.domain.tld/sub1/的請求總會被sub1-vhost所伺服。
如果客戶端發送了正確的”Host:”頭,發送到htp://www.sub1.domain.tld、的請求只會被sub1-vhost所伺服。如果沒有發送”Host:”頭,客戶端將會得到從主虛擬主機發送的信息頁面。
請注意,這里還有一點小問題:如果客戶端沒有發送”Host:”頭,發送到http://www.sub2.domain.tld/sub1/的請求還是會被sub1-vhost所伺服
(轉)http://blog.csdn.net/tham_/article/details/41949815


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM