nginx 主要應用場景
1、反向代理

關鍵命令:proxy_pass;如將 localhost 的80端口 轉到 localhost 8080端口
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host:$server_port;
}
}
2、負載均衡
負載均衡也是Nginx常用的一個功能,簡單而言就是當有2台或2台以上服務器時,根據規則隨機的將請求分發到指定的服務器上處理,負載均衡配置一般都需要同時配置反向代理,通過反向代理跳轉到負載均衡。而Nginx目前支持自帶3種負載均衡策略,還有2種常用的第三方策略
關鍵命令:upstream;如將localhost 80端口的請求 均分到 localhost 8080 和 localhost 8081兩個服務上
負載方案:
1)、權重 weight:必須實現session 共享,否則導致用戶session不同步,導致用戶重新登陸
upstream test {
server localhost:8080 weight=9; #請求的 90% 進入到8080服務器
server localhost:8081 weight=1; #請求的 10% 進入到8081服務器
}
2)、ip_hash:每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題
upstream test {
ip_hash;
server localhost:8080;
server localhost:8081;
}
3)、fair(第三方):按后端服務器的響應時間來分配請求,響應時間短的優先分配。
upstream test {
fair;
server localhost:8080;
server localhost:8081;
}
4)、url_hash(第三方):問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效
upstream backend {
hash $request_uri;
hash_method crc32;
server localhost:8080;
server localhost:8081;
}
5)、默認:按照時間一次分配到不同的機器上
upstream test {
server localhost:8080;
server localhost:8081;
}
server {
listen 80;
server_name localhost;
client_max_body_size 1024M;
location / {
proxy_pass http://test;
proxy_set_header Host $host:$server_port;
}
}
3、WEB服務器
Nginx本身也是一個靜態資源的服務器,當只有靜態資源的時候,就可以使用Nginx來做服務器,同時現在也很流行動靜分離,就可以通過Nginx來實現,首先看看Nginx做靜態資源服務器
這樣如果訪問 http://localhost 就會默認訪問到 E://www/data
目錄下面的index.html
,如果一個網站只是靜態頁面的話,那么就可以通過這種方式來實現部署
關鍵命令:root 當只有靜態資源的時候,就可以使用Nginx來做服務器
server {
listen 80;
server_name localhost;
location / {
root e:/www/data;
index index.html;
}
}
4、正向代理 不支持HTTPS
5、靜態分離
upstream test{ server localhost:8080; server localhost:8081; } server { listen 80; server_name localhost; location / { root e:/wwwroot; index index.html; } # 所有靜態請求都由nginx處理,存放目錄為html location ~ .(gif|jpg|jpeg|png|bmp|swf|css|js)$ { root e:/wwwroot; } # 所有動態請求都轉發給tomcat處理 location ~ .(do)$ { proxy_pass http://test; } error_page 500 502 503 504 /50x.html; location = /50x.html { root e:/wwwroot; } }