1、Nginx是什么?
Nginx是一個輕量級、高性能、穩定性高、并發性好的HTTP和反向代理服務器。
2、三大功能
1)反向代理
正向代理:特定情況下,代理用戶訪問服務器,需要用戶手動的設置代理服務器的ip和端口號。
反向代理:是用來代理服務器,代理用戶要訪問的目標服務器。代理服務器接受請求,然后將請求轉發給內部網絡的服務器(服務集群模式),并將從服務器上得到的結果返回給客戶端,此時代理服務器對外就表現為一個服務器。
Nginx在反向代理上,提供靈活的功能,可以根據不同的正則采用不同的轉發策略,如圖設置好后不同的請求就可以走不同的服務器。
2)負載均衡
負載均衡:多在高并發情況下需要使用。其原理就是將數據流量分攤到多個服務器執行,減輕每臺服務器的壓力,多臺服務器(集群)共同完成工作任務,從而提高了數據的吞吐量。
Nginx可使用的負載均衡策略有:輪詢(默認)、權重、ip_hash、url_hash(第三方)、fair(第三方)。
3)動靜分離
常用于前后端分離,Nginx提供的動靜分離是指把動態請求和靜態請求分離開,合適的服務器處理相應的請求,使整個服務器系統的性能、效率更高。
Nginx可以根據配置對不同的請求做不同轉發,這是動態分離的基礎。靜態請求對應的靜態資源可以直接放在Nginx上做緩沖,更好的做法是放在相應的緩沖服務器上。動態請求由相應的后端服務器處理。
3、配置文件
#web服務器
server {
listen 81; # 監聽的端口
server_name localhost; # 域名或ip
location / { # 訪問路徑配置
root index;# 根目錄
index index.html index.htm; # 默認首頁
}
error_page 500 502 503 504 /50x.html; # 錯誤頁面
location = /50x.html {
root html;
}
}
# 虛擬主機
server {
listen 80;
server_name www.lishaojun.com;
location / {
root cart;
index cart.html;
}
}
server {
listen 80;
server_name abc.lishaojun.com;
location / {
root search;
index search.html;
}
}
#反向代理+負載均衡
upstream Tomcat-travel {
server 192.168.177.129:8080;
server 192.168.177.129:8081 weight=2;
server 192.168.177.129:8082;
}
server {
listen 80; # 監聽的端口
server_name www.lishaojun.com; # 域名或ip
location / { # 訪問路徑配置
# root index;# 根目錄
proxy_pass http://tomcat-travel; # 別名
index index.html index.htm; # 默認首頁
}
error_page 500 502 503 504 /50x.html; # 錯誤頁面
location = /50x.html {
root html;
}
}