Nginx七層負載均衡之動靜分離思路詳解
Nginx動靜分離簡單來說就是把動態(tài)跟靜態(tài)請求分開,不能理解成只是單純的把動態(tài)頁面和靜態(tài)頁面屋里分離。嚴格意義上說應該是動態(tài)請求跟靜態(tài)請求分開,可以理解層使用Nginx處理靜態(tài)頁面,tomcat處理動態(tài)頁面。
- 動態(tài)資源請求:要通過tomcat查詢數據庫,從數據庫里返回內容。nginx轉發(fā)到tomcat中通過tomcat來做處理。
- 靜態(tài)資源請求:請求中需要得到圖片的地址或者請求一個html文件,css樣式
思路:
servera:負載均衡服務器
serverb:靜態(tài)服務器
serverc:動態(tài)服務器
serverd:默認服務器
servera(192.168.233.132):
# 安裝 Nginx 服務器 yum install nginx -y #關閉防火墻和selinux systemctl stop firewalld setenforce 0 # 切換到 Nginx 配置文件目錄 cd /etc/nginx/conf.d/ # 使用 vim 編輯器打開 proxy.conf 文件進行編輯 vim proxy.conf # 定義上傳服務器的 upstream 塊 upstream uploadPools { server 192.168.233.140; # 后端服務器的IP地址 } # 定義靜態(tài)資源服務器的 upstream 塊 upstream staticPools { server 192.168.233.144; # 后端服務器的IP地址 } # 定義主要應用服務器的 upstream 塊 upstream wwwPools { server 192.168.233.141; # 后端服務器的IP地址 } server { listen 80; # 監(jiān)聽80端口 server_name www.bbs.com; # 將請求轉發(fā)到此服務器塊中的指定域名 # 處理靜態(tài)資源請求 location /static/ { proxy_pass http://staticPools; # 將請求轉發(fā)到靜態(tài)資源服務器 proxy_set_header host $host; # 傳遞請求頭信息 proxy_set_header X-Forwarded-For $remote_addr; # 傳遞 X-Forwarded-For 頭信息 } # 處理動態(tài)資源請求 location /upload/ { proxy_pass http://uploadPools; # 將請求轉發(fā)到上傳服務器 proxy_set_header host $host; # 傳遞請求頭信息 proxy_set_header X-Forwarded-For $remote_addr; # 傳遞 X-Forwarded-For 頭信息 } # 默認處理所有其他請求 location / { proxy_pass http://wwwPools; # 將請求轉發(fā)到主要應用服務器 proxy_set_header host $host; # 傳遞請求頭信息 proxy_set_header X-Forwarded-For $remote_addr; # 傳遞 X-Forwarded-For 頭信息 } }
serverb(192.168.233.144):
# 安裝 Nginx 服務器 yum install nginx -y #關閉防火墻和selinux systemctl stop firewalld setenforce 0 # 切換到 Nginx 配置文件目錄 cd /etc/nginx # 使用 vim 編輯器打開 nginx.conf 文件進行編輯,并注釋掉 listen 和 root 配置項 vi nginx.conf # listen 80; # listen [::]:80; # root /usr/share/nginx/html; # 創(chuàng)建一個靜態(tài)網頁目錄,并在其中創(chuàng)建一個簡單的測試頁面 mkdir -p /data/web cd /data/web mkdir static echo static web test page > static/index.html # 切換到 Nginx 配置文件目錄,并創(chuàng)建一個新的虛擬主機配置文件 www.conf,并添加配置項 cd /etc/nginx/conf.d/ vim www.conf # 添加以下內容: # server { # listen 80; # server_name www.bbs.com; # root /data/web/; # location / { # index index.html; # } # } # 重啟 Nginx 服務器使配置生效 systemctl restart nginx
serverc(192.168.233.140):
# 安裝 Nginx 服務器 yum install nginx -y #關閉防火墻和selinux systemctl stop firewalld setenforce 0 # 切換到 Nginx 配置文件目錄 cd /etc/nginx # 使用 vim 編輯器打開 nginx.conf 文件進行編輯,并注釋掉 listen 和 root 配置項 vi nginx.conf # listen 80; # listen [::]:80; # root /usr/share/nginx/html; # 創(chuàng)建一個新的靜態(tài)網頁目錄,并在其中創(chuàng)建一個簡單的測試頁面 mkdir -p /data/web cd /data/web mkdir upload echo upload web test page > upload/index.html # 切換到 Nginx 配置文件目錄,并創(chuàng)建一個新的虛擬主機配置文件 www.conf,并添加配置項 cd /etc/nginx/conf.d/ vim www.conf # 添加以下內容: # server { # listen 80; # server_name www.bbs.com; # root /data/web/upload; # location / { # index index.html; # } # } # 重啟 Nginx 服務器使配置生效 systemctl restart nginx
serverd(192.168.233.141):
# 安裝 Nginx 服務器 yum install nginx -y #關閉防火墻和selinux systemctl stop firewalld setenforce 0 # 切換到 Nginx 配置文件目錄 cd /etc/nginx # 使用 vim 編輯器打開 nginx.conf 文件進行編輯,并注釋掉 listen 和 root 配置項 vi nginx.conf # listen 80; # listen [::]:80; # root /usr/share/nginx/html; # 創(chuàng)建一個新的靜態(tài)網頁目錄,并在其中創(chuàng)建一個簡單的測試頁面 mkdir -p /data/web echo "web test page." > /data/web/index.html # 使用 vim 編輯器打開 Nginx 的虛擬主機配置文件 www.conf,并添加配置項 vi /etc/nginx/conf.d/www.conf # 添加以下內容: # server { # listen 80; # server_name www.bbs.com; # root /data/web/; # location / { # index index.html; # } # } # 重啟 Nginx 服務器使配置生效 systemctl restart nginx # 使用 vim 編輯器打開 /etc/hosts 文件,并添加 IP 地址和域名的映射關系 vi /etc/hosts # 添加以下內容: # 192.168.233.132 www.bbs.com www.blog.com
測試:
# 使用 curl 命令訪問 Nginx 服務器的默認主頁 curl http://192.168.233.132 # 使用 curl 命令訪問靜態(tài)文件目錄,并顯示目錄內容 curl http://192.168.233.132/static/ # 使用 curl 命令訪問動態(tài)文件目錄,并顯示目錄內容 curl http://192.168.233.132/upload/
到此這篇關于Nginx七層負載均衡之動靜分離的文章就介紹到這了,更多相關Nginx動靜分離內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mac使用Nginx設置代理并禁用自帶Apache的問題記錄
本文介紹如何在Mac上禁用自帶的Apache服務并安裝Nginx,首先需要關閉Apache并禁止其自啟動,接著,通過Homebrew安裝Nginx,并配置其文件和目錄,最后,介紹了如何生成SSL/自簽名證書,詳細步驟包括修改Apache配置、安裝Nginx、編輯Nginx配置文件以及驗證和重啟Nginx服務2024-09-09Windows下使用?Nginx?搭建?HTTP文件服務器?實現文件下載功能
Nginx?是一款輕量級的?HTTP?服務器,采用事件驅動的異步非阻塞處理方式框架,這讓其具有極好的?IO?性能,時常用于服務端的反向代理和負載均衡,這篇文章主要介紹了Windows下使用?Nginx?搭建?HTTP文件服務器實現文件下載功能,需要的朋友可以參考下2023-03-03