一 Nginx概述
1:實際開發遇到的問題
一個服務器支撐不了高併發,需要對服務器進行集羣
2:Nginx概述
nginx常做靜態內容服務和代理服務,tomcat主要做應用服務器
一個http服務器,高性能http服務器及反向代理服務器。支撐10萬併發量,cpu,內存等資源消耗低,運行穩定
3應用場景
1.http服務器,常做網頁靜態服務器
2.虛擬主機,可以實現一臺服務器虛擬出多個網站。
基於端口的,不同端口
基於域名的,不同域名
3.反向代理,負載均衡。
二 安裝
1.下載nginx,http://nginx.org/en/download.html,
nginx-1.16.1 pgp |
2.準備 環境,linux centos 7.
執行命令
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
3. 解壓 tar -zxvf nginx-1.16.1.tar
4. cd nginx-1.16.1
執行 命令, --prefix 指定安裝目錄
./configure --prefix=/usr/local/nginx
5. 編譯,安裝
make
make install
6.cd /usr/local/nginx/sbin 啓動 nginx
./nginx
指定配置文件啓動命令: nginx -c /usr/local/nginx/conf/nginx.conf
快速停止或關閉Nginx:nginx -s stop
正常停止或關閉Nginx:nginx -s quit
配置文件修改重裝載命令:nginx -s reload
7. 訪問 http://ip:80 (可能需要關閉防火牆,或打開80端口)
三 配置文件
conf/nginx.conf
代表網絡請求
http{
#一個nginx可以配置多個server,端口號不同或則主機不同
server{
listen 80; 端口配置
server_name localhost;
location / { 匹配路徑
root html; 訪問的根目錄(html,與conf目錄同級)
index index.html; 默認首頁
}
}
server{
listen 89; 端口配置
server_name localhost;
location / { 匹配路徑
root html; 訪問的根目錄(html,與conf目錄同級)
index index.html; 默認首頁
}
}
server{
listen 89; 端口配置
server_name localhost2; //根據域名不同,訪問相同端口,不同域名,如果使用本地虛擬機部署,
//需要修改windows的hosts文件,映射域名和ip地址映射
location / { 匹配路徑
root html; 訪問的根目錄(html,與conf目錄同級)
index index.html; 默認首頁
}
}
}
四 :配置負載均衡
A想向C借錢,C不認識A,A通過B向C借錢。C不知道錢借給了誰,隱藏了真實的客戶端
反向代理,A不知道誰借錢給他,反向代理服務器隱藏了真實的服務端
算法
1輪詢 (默認使用)
2權重,用於服務器性能不均的情況
3ip_Hash :根據請求的ip的hash結果路由,今後同一ip只會訪問同一tomcat
配置負載均衡( conf/nginx.conf)
http{
upstream www.car.com{
server 192.168.82.129:8080 weight=2;
server 192.168.82.130:8080 weight=1;
ip_hash;// ip_hash+權重有意義
}
server {
listen 80;
server_name localhost;
location /{
proxy_pass http://www.car.com/; //指定upstream
}
}
}
訪問:可以直接訪問 http://localhost:80/, 或者 http://www.car.com/ ,結尾加 /,詳見匹配路徑
五:動靜分離配置
前後端分離,後端提供數據接口,前端提供頁面 (ajax)
指將 靜態資源如 js,css,jpg等資源和動態資源如jsp分離開,提高服務器響應速度,提高性能
配置文件:
server {
location ~*\.(css|js|html)${ #以 .css,.js後綴結尾
root resources ; # 可以使用絕對路徑,相對路徑和conf同級 ,放置靜態資源的目錄(html,js,css)
index index.html;
expires 7d; #有效天數,本地緩存
}
}