Nginx
1、什么是Nginx
? Nginx 是?款?性能的 http 服務器/反向代理服務器及電?郵件(IMAP/POP3)代理服務器,由俄羅斯的程式設計師伊?爾·?索夫(Igor Sysoev)所開發,官?測驗 nginx 能夠?撐 5 萬并發(但實際上達到 3 萬已經很好了),并且 cpu、記憶體等資源消耗卻?常低,運行非常穩定,
1.1、Nginx的應用場景
- http 服務器,
Nginx 是?個 http 服務可以獨?提供 http 服務,可以做網頁靜態服務器,
- 虛擬主機 ,
可以實作在?臺服務器虛擬出多個虛擬主機,
- 反向代理,負載均衡,
當?站的訪問量達到?定程度后,單臺服務器不能滿??戶的請求時,需要?多臺服務器集群可時以使? nginx 做反向代理,并且多臺服務器可以平均分擔負載,不會因為某臺服務器負載?宕機?某臺服務器閑置的情況(也可以配置某臺主機承受較大的訪問),
1.2、安裝Nginx
?為了環境兼容方便,我們這里采用 docker 來安裝鏡像使用,前提已安裝并啟動 docker 的服務,
- 搜索 nginx 鏡像
docker search nginx
- 拉取 nginx 鏡像
docker pull nginx
- 創建容器,設定埠映射、目錄映射
# 在/root?錄下創建nginx?錄?于存盤nginx資料資訊,以及配置資訊
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在conf/下創建nginx.conf?件,用于nginx的配置
vim nginx.conf
-
填充配置資訊
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; # 其他的配置資訊不用管,注意這個配置是指定之后的服務埠組態檔的地址和命名規范 include /etc/nginx/conf.d/*.conf; } -
開啟容器
docker run -id --name=c_nginx \ # 映射三個埠 -p 80:80 \ -p 81:81 \ -p 82:82 \ # 指定組態檔 -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \ # 指定服務組態檔地址 -v $PWD/conf.d:/etc/nginx/conf.d \ # 日志檔案地址 -v $PWD/logs:/var/log/nginx \ # 靜態頁面地址 -v $PWD/html:/usr/share/nginx/html \ nginx
1.3、配置一個服務映射測驗nginx
-
在 conf.d 檔案夾下添加
80.conf組態檔server { listen 80; # 監聽的端? server_name localhost; # 域名或ip location / { # 訪問路徑配置 root /usr/share/nginx/html;# 根?錄,這個目錄已經和html目錄進行了資料系結 index index.html; # 默認??,在html目錄下創建一個index.html檔案即可 } error_page 500 502 503 504 /50x.html; # 錯誤?? location = /50x.html { root html; } } -
重啟 nginx 的服務,加載當前的服務檔案
? 服務啟動完畢之后在瀏覽器中進行資料訪問即可完成埠的映射,
2、靜態網站的部署
? 靜態頁面只需要配置在 html 目錄下即可,因為已經和容器完成了資料卷系結,會自動的同步到容器中進行部署,
2.1、配置虛擬主機
? 虛擬主機,也叫“?站空間”,就是把?臺運?在互聯?上的物理服務器劃分成多個“虛擬”服務器,虛擬主機技術極?的促進了?絡技術的應?和普及,同時虛擬主機的租?服務也成了?絡時代的?種新型經濟形式,
-
上傳靜態頁面資料
將需要展示的頁面上傳至
html檔案夾下面, -
撰寫組態檔 port.conf
server { listen 81; # 監聽的端? server_name localhost; # 域名或ip location / { # 訪問路徑配置 root /usr/share/nginx/index;# 根?錄 index index.html; # 默認?? } error_page 500 502 503 504 /50x.html; # 錯誤?? location = /50x.html { root html; } } server { listen 82; # 監聽的端? server_name localhost; # 域名或ip location / { # 訪問路徑配置 root /usr/share/nginx/regist;# 根?錄 index regist.html; # 默認?? } error_page 500 502 503 504 /50x.html; # 錯誤?? location = /50x.html { root html; } } -
訪問測驗
地址欄輸? http://虛擬機的IP地址/:81 可以看到首頁面的資訊,
地址欄輸? http://虛擬機的IP地址/:82 可以看到注冊頁面的資訊,
2.2、域名系結
-
什么是域名
域名(Domain Name),是由?串?“點”分隔的字符組成的Internet上某?臺計算機或計算機組的名稱,?于在資料傳輸時標識計算機的電??位(有時也指地理位置,地理上的域名,指代有?政?主權的?個地?區域),
域名是?個IP地址上有“?具” ,域名的?的是便于記憶和溝通的?組服務器的地址 (?站,電?郵件,FTP等),域名作為?所能及難忘的互聯?參與者的名稱,域名按域名系統(DNS)的規則流程組成,在DNS中注冊的任何名稱都是域名,
域名?于各種?絡環境和應?程式特定的命名和尋址?的,通常,域名表示互聯?協議(IP)資源,例如?于訪問因特?的個?計算機,托管?站的服務器計算機,或?站本身或通過因特?傳送的任何其他服務,世界上第?個注冊的域名是在 1985年1? 注冊的,
-
域名級別
-
頂級域名
?是國家頂級域名(national top-level domainnames,簡稱nTLDs),200多個國家都按照ISO3166國 家代碼分配了頂級域名,例如中國是cn,美國是us,?本是jp等;
?是國際頂級域名(international top-level domain names,簡稱iTDs),例如表示?商企業的 .Com .Top,表示?絡提供商的.net,表示?盈利組織的.org,表示教育的.edu,以及沒有限制的中性域名等,但因為?2014年以來新頂級域名的發展,域名爭議案件數量增?幅度越來越? ,為加強域名管理,解決 域名資源的緊張,Internet協會、Internet分址機構及世界知識產權組織(WIPO)等國際組織經過?泛 協商, 在原來三個國際通?頂級域名:(com)的基礎上,新增加了 `7`個國際通?頂級域名:**firm(公 司企業)**、**store(銷售公司或企業)**、**Web(突出WWW活動的單位)**、**arts(突出?化、娛樂活動的 單位)**、**rec (突出消遣、娛樂活動的單位)**、**info(提供資訊服務的單位)**、**nom(個?)**,并在世界范圍 內選擇新的注冊機構來受理域名注冊申請,
- ?級域名
?級域名是指頂級域名之下的域名,簡單點來說就是加了一個分支, 例如:map.baidu.com
- 三級域名
三級域名?字?( A~Z,a~z,??寫等)、數字(0~9)和連接符(-)組成, 各級域名之間?實點(.)連接,三級域名的?度不能超過20個字符,如?特殊原因,建議采?申請?的英?名(或者縮 寫)或者漢語拼?名 (或者縮寫) 作為三級域名,以保持域名的清晰性和簡潔性,
簡單說就是在二級域名的基礎上再加一個分支進入, 例如: item.map.baidu.com
- 域名與IP系結
?個域名對應?個 ip 地址,?個 ip 地址可以被多個域名系結,
2.3、本地域名決議
? 本地測驗可以修改 hosts ?件(C:\Windows\System32\drivers\etc) 可以配置域名和 ip 的映射關系,如果 hosts ?件中配置了域名和 ip 的對應關系,不需要? dns 服務器,
?在 hosts 檔案中添加域名系結資訊,訪問下面兩個域名就會決議到虛擬機的IP地址,從而找到相應的服務映射,
192.168.188.128 www.beordie.com
192.168.188.128 www.yishun.com
-
修改組態檔 port.conf
server { listen 81; # 監聽的端? server_name www.beordie.com; # 系結域名 .......... } server { listen 82; # 監聽的端? server_name www.yishun.com; # 系結域名 .......... }訪問域名即可訪問到具體的服務
3、 反向代理和負載均衡
3.1、反向代理
-
什么是反向代理
反向代理(Reverse Proxy)?式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部?絡上的服務器,并將從服務器上得到的結果回傳給internet上請求連接的客戶端,此時代理服務器對外就表現為?個反向代理服務器,
-
圖解正向代理和反向代理
正向代理是針對于客戶端的

反向代理是針對服務器的

3.2、配置 tomcat
?在 docker 中完成tomcat容器的配置
- 搜索tomcat鏡像
docker search tomcat
-
拉取tomcat鏡像
docker pull tomcat -
創建容器,設定埠映射、目錄映射
# 在/root?錄下創建tomcat?錄?于存盤tomcat資料資訊 mkdir ~/tomcat cd ~/tomcatdocker run -id --name=c_tomcat \ # 埠映射 -p 8080:8080 \ # 資料卷系結 -v $PWD:/usr/local/tomcat/webapps \ tomcat
3.3、配置反向代理
?在 nginx 的組態檔夾下面創建 tomcat.conf 組態檔并填充資訊,
-
tomcat.conf
upstream tomcat-beordie{ server 192.168.188.128:8080; } server { listen 80; # 監聽的端? server_name www.beordie.com; # 域名或ip location / { # 訪問路徑配置 # root index;# 根?錄 proxy_pass http://tomcat-beordie; index index.html index.htm; # 默認?? } }當瀏覽器訪問
www.beordie.com域名時會被決議到虛擬機,然后又被代理到192.168.188.128:8080也就是tomcat的啟動埠,從而實作反向代理,
3.4、 負載均衡
-
什么是負載均衡
負載均衡是建?在現有?絡結構之上,它提供了?種廉價有效透明的?法擴展?絡設備和服務器的帶寬、 增加吞吐量、加強?絡資料處理能?、提??絡的靈活性和可?性,
負載均衡,英?名稱為Load Balance,其意思就是分攤到多個操作單元上進?執?,例如Web服務器、 FTP服務器、企業關鍵應?服務器和其它關鍵任務服務器等,從?共同完成?作任務,
-
配置負載均衡
nginx 配置負載均衡很簡單,只需要將要均衡的地址通過分號隔開的形式寫在一起就可以了,會自動完成輪詢的負載均衡,如果需要將某臺主機的訪問加大,可在后面添加
weight=2來增大訪問的頻率,upstream tomcat-beordie { server 192.168.220.12:8080; server 192.168.220.12:8081 eight=2; server 192.168.220.12:8082; }
例如Web服務器、 FTP服務器、企業關鍵應?服務器和其它關鍵任務服務器等,從?共同完成?作任務,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/301865.html
標籤:其他
