網(wǎng)址的組成
http
- 指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣的響應(yīng)
域名(localhost)
- 域名方便人類記憶,DNS會(huì)將域名解析成IP地址指定到對(duì)應(yīng)的服務(wù)器
端口號(hào)(8887)
- 請(qǐng)求發(fā)到服務(wù)器后,會(huì)根據(jù)端口找到對(duì)應(yīng)的應(yīng)用處理請(qǐng)求返回客戶端數(shù)據(jù)
數(shù)據(jù)請(qǐng)求響應(yīng)過程
客戶與服務(wù)器建立連接贞远;
客戶向服務(wù)器提出請(qǐng)求牍蜂;
服務(wù)器接受請(qǐng)求勺美,并根據(jù)請(qǐng)求返回相應(yīng)的文件作為應(yīng)答谣拣;
客戶與服務(wù)器關(guān)閉連接。
客戶與服務(wù)器之間的HTTP連接是一種一次性連接叁怪,它限制每次連接只處理一個(gè)請(qǐng)求审葬,當(dāng)服務(wù)器返回本次請(qǐng)求的應(yīng)答后便立即關(guān)閉連接,下次請(qǐng)求再重新建立連接奕谭。這種一次性連接主要考慮到WWW服務(wù)器面向的是Internet中成干上萬個(gè)用戶涣觉,且只能提供有限個(gè)連接,故服務(wù)器不會(huì)讓一個(gè)連接處于等待狀態(tài)展箱,及時(shí)地釋放連接可以大大提高服務(wù)器的執(zhí)行效率旨枯。
互聯(lián)網(wǎng)數(shù)據(jù)傳輸過程.png
服務(wù)部署端口占用
http(默認(rèn)80端口但是不會(huì)占用),若配置的服務(wù)也是80端口則直接通過域名即可訪問,不用加端口號(hào),
一個(gè)應(yīng)用只能占一個(gè)端口
Nginx反向代理(在不添加端口的情況解決多個(gè)域名訪問一臺(tái)服務(wù)器的不同應(yīng)用)
Nginx默認(rèn)占用80端口
Nginx是一個(gè)高性能的HTTP和反向代理web服務(wù)器
反向代理服務(wù)器位于用戶與目標(biāo)服務(wù)器之間,但是對(duì)于用戶而言混驰,反向代理服務(wù)器就相當(dāng)于目標(biāo)服務(wù)器攀隔,即用戶直接訪問反向代理服務(wù)器就可以獲得目標(biāo)服務(wù)器的資源
靜態(tài)資源可以指向一個(gè)root目錄
動(dòng)態(tài)資源指向一個(gè)請(qǐng)求地址( http://192.168.78.134:8080)
客戶通過域名發(fā)送請(qǐng)求,Nginx服務(wù)器監(jiān)聽到請(qǐng)求,將請(qǐng)求映射到對(duì)應(yīng)域名的服務(wù)器如192.168.78.134下的8080端口,服務(wù)器處理后數(shù)據(jù)交給nginx,進(jìn)而返回給客戶端
#配置一個(gè)代理即tomcat1服務(wù)器
upstream tomcat_server1 {
server 192.168.78.134:8080;
}
#配置一個(gè)代理即tomcat2服務(wù)器
upstream tomcat_server2 {
server 192.168.78.135:8080;
}
#配置一個(gè)虛擬主機(jī)
server {
listen 80;
server_name aaa.test.com;
location / {
#域名aaa.test.com的請(qǐng)求全部轉(zhuǎn)發(fā)到tomcat_server1即tomcat1服務(wù)上
proxy_pass http://tomcat_server1;
#歡迎頁面皂贩,按照從左到右的順序查找頁面
index index.jsp index.html index.htm;
}
}
server {
listen 80;
server_name bbb.test.com;
location / {
#域名bbb.test.com的請(qǐng)求全部轉(zhuǎn)發(fā)到tomcat_server2即tomcat2服務(wù)上
proxy_pass http://tomcat_server2;
index index.jsp index.html index.htm;
}
}