🍄Nginx?虛擬主機&資源靜態化
此篇主要是資源靜態化和虛擬主機的配置使用,最好先看一下基礎篇(文尾有壁紙~)
目錄
- 🍄Nginx?虛擬主機&資源靜態化
- 一、🍓負載策略的幾種配置(常用命令)
- 1、輪詢模式(默認)
- 2、權重模式
- 3、最少連接數
- 4、IpHash
- 5、常用命令
- 二、🍓資源靜態化
- 1、配置Nginx服務器
- 2、配置Tomcat服務器
- 3、測驗
- 三、🍓虛擬主機
- 1、修改windons的hosts檔案
- 2、修改Nginx組態檔
- 3、 基于埠
- 四、🍓 Session一致性
- 1、安裝并啟動
- 2、修改tomcat
一、🍓負載策略的幾種配置(常用命令)
四種負載均衡均衡配置直接再conf/nginx.conf檔案內進行修改添加即可
1、輪詢模式(默認)
upstream bdp {
server 192.168.168.101:8080;
server 192.168.168.102:8080;
server 192.168.168.103:8080;
}
2、權重模式
upstream bdpweight {
server 192.168.168.101:8080 weight=4;
server 192.168.168.103:8080 weight=1;
server 192.168.168.102:8080 weight=1;
}
3、最少連接數
upstream bdpleast {
least_conn;
server 192.168.168.101:8080;
server 192.168.168.103:8080;
server 192.168.168.102:8080;
}
4、IpHash
upstream bdphash {
ip_hash;
server 192.168.168.101:8080;
server 192.168.168.103:8080;
server 192.168.168.102:8080;
}
5、常用命令
關閉nginx服務
kill `cat /usr/local/nginx/logs/nginx.pid`
nginx -s reload :修改配置后重新加載生效
nginx -s reopen :重新打開日志檔案
nginx -t -c /path/to/nginx.conf 測驗nginx組態檔是否正確
關閉nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx
其他的停止nginx 方式:
ps -ef | grep nginx
kill -QUIT 主行程號 :從容停止Nginx
kill -TERM 主行程號 :快速停止Nginx
pkill -9 nginx :強制停止Nginx
啟動nginx:
nginx -c /path/to/nginx.conf
平滑重啟nginx:
kill -HUP 主行程號
二、🍓資源靜態化
提前準備四臺虛擬機,basenode,node1,node2,node3,basenode作為nginx代理服務器,node1~3作為三臺tomcat服務器,將靜態檔案小的直接由nginx下管理,大的檔案直接通過圖床管理,準備兩張圖片測驗,

1、配置Nginx服務器
準備靜態資源
#再nginx目錄html下創建static檔案夾
mkdir static
#將小資源圖片上傳statci內
rz
修改配置config
#再server中添加內容:
server {
location ^~ /static/ {
root html;
}
}
2、配置Tomcat服務器
圖床,直接使用線上的一個圖床https://imgurl.org/

三臺一起操作更方便

修改apache-tomcat-8080/webapps/ROOT/index.js檔案
<body>
<h1>welcome to 斗魚直播</h1>
<h2>Server:<%=request.getLocalAddr() %></h2>
<h2>Port:<%=request.getLocalPort() %></h2>
<h2>Client:<%=request.getRemoteAddr() %></h2>
<!--圖床生成的圖片鏈接--/>
<img src = 'https://s3.bmp.ovh/imgs/2021/10/0935f78b61223238.jpg' />
<!--nginx的static圖片鏈接--/>
<img width="200px" src="/static/test4.jpg" />
</body>
3、測驗



三、🍓虛擬主機
虛擬主機使用的是特殊的軟硬體技術,它把一臺運行在因特網上的服務器主機分成多臺“虛擬”的主
機,每臺虛擬主機都可以是一個獨立的網站,可以具有獨立的域名,具有完整的Intemet服務器功
能(WWW、FTP、Email等),同一臺主機上的虛擬主機之間是完全獨立的,從網站訪問者來看,
每一臺虛擬主機和一臺獨立的主機完全一樣,
-分類
–1、基于域名的虛擬主機,通過域名來區分虛擬主機
–2、基于埠的虛擬主機,通過埠來區分虛擬主機
(這里對node1~3上的tomcat服務器進行復制,每個node上有兩臺,具體復制tomcat再基礎篇有教程)
1、修改windons的hosts檔案
修改Window的 C:\Windows\System32\drivers\etc\hosts 檔案
//添加內容
192.168.168.100 www.fxhh.com
192.168.168.100 www.miaosha.com
2、修改Nginx組態檔
upstream miaosha {
server 192.168.168.101:8080;
server 192.168.168.102:8080;
server 192.168.168.103:8080;
}
upstream fxhh {
server 192.168.168.101:18080;
server 192.168.168.102:18080;
server 192.168.168.103:18080;
}
server {
listen 80;
server_name www.miaosha.com;
location / {
proxy_pass http://miaosha;
}
}
server {
listen 80;
server_name www.fxhh.com;
location / {
proxy_pass http://fxhh;
}
}
重啟nginx和tomcat進行測驗


通過配置域名+nginx反向代理,直接實作基于域名的虛擬主機
3、 基于埠
修改Window的 C:\Windows\System32\drivers\etchosts 檔案
192.168.168.100 www.bdp.com
修改Nginx組態檔
http {
upstream port12345 {
server 192.168.168.101:8080;
server 192.168.168.102:8080;
server 192.168.168.103:8080;
}
upstream port54321 {
server 192.168.168.101:18080;
server 192.168.168.102:18080;
server 192.168.168.103:18080;
}
server {
listen 12345;
server_name www.bdp.com;
location / {
proxy_pass http://port12345;
}
}
server {
listen 54321;
server_name www.bdp.com;
location / {
proxy_pass http://port54321;
}
}
}
基于埠虛擬主機修改以上內容即可實作,一個監聽埠一個監聽域名
四、🍓 Session一致性
首先我們要明白session的跟蹤機制,session存放cookie中,具體原理如下圖,故此我們使用一個獨立的存盤器來存放session,記憶體資料庫 memcached 來存盤


1、安裝并啟動
#記憶體資料庫
#安裝資料庫
yum install memcached -y
#開啟資料庫服務
systemctl status memcached
systemctl start memcached
systemctl enable memcached
#查看配置
vim /etc/sysconfig/memcached
2、修改tomcat
#拷貝jar包到當前服務器lib目錄下
#要注意memcached的版本
#如果一個機器有多個tomcat都需要session一致配置
tomcat/conf/server.xml
#相同專案如果想共享session,需要把jvmRoute命名一致
#如果你只有一個tomcat,忽略此步驟
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm18080">
</Engine>
#配置 tomcat/conf/context.xml
<Manager
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.88.100:11211"
sticky="true"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoT
ranscoderFactory" />
#重啟服務器即可實作
完工~~

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/385554.html
標籤:其他
