【NGINX】 -9 nginx + tomcat實現的多級反向代理

文章目錄

  • 1、tomcat的安裝 (centos版本)
    • 1.1 安裝Java依賴環境
    • 1.2 安裝tomcat
  • 2、tomcat的虛擬主機的配置
    • 2.1 配置多級目錄
  • 3、利用nginx的反向代理實現將轉發指向一個虛擬機
    • 3.1 nginx服務器的配置
    • 3.2 客戶端配置
  • 4、 反向多級代理
    • 代理服務器操作
    • nginx 1 服務器
    • nginx 2 服務器
    • tomcat 1 服務器
    • tomcat 2 服務器
    • 結果展示


1、tomcat的安裝 (centos版本)

1.1 安裝Java依賴環境

[root@localhost ~]# rz -E
rz waiting to receive.
[root@localhost ~]# ls
anaconda-ks.cfg       jdk-8u201-linux-x64.rpm  模板  圖片  下載  桌面
initial-setup-ks.cfg  公共                     視頻  文檔  音樂
[root@localhost ~]# rpm -ivh jdk-8u201-linux-x64.rpm #安裝成功
[root@localhost ~]# cd /usr/java/
[root@localhost java]# ls
default  jdk1.8.0_201-amd64  latest
[root@localhost java]# #添加環境變量
[root@localhost java]# vim /etc/profile#添加內容
##
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
##
[root@localhost java]# source /etc/profile
[root@localhost java]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
#添加成功
[root@localhost java]# 

1.2 安裝tomcat

具體操作步驟如下

[root@localhost opt]# rz -E
rz waiting to receive.
#拖入相關安裝包
[root@localhost opt]# ls
apache-tomcat-9.0.16.tar.gz  rh
[root@localhost opt]# tar -xf apache-tomcat-9.0.16.tar.gz 
#解壓
[root@localhost opt]# ls
apache-tomcat-9.0.16  apache-tomcat-9.0.16.tar.gz  rh
[root@localhost opt]# cp -r apache-tomcat-9.0.16 /usr/local/tomcat
#復制到系統路徑
[root@localhost opt]# cd /usr/local/tomcat/
[root@localhost tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@localhost tomcat]# cd bin/
[root@localhost bin]# ls
bootstrap.jar       commons-daemon-native.tar.gz  makebase.sh       tomcat-juli.jar
catalina.bat        configtest.bat                setclasspath.bat  tomcat-native.tar.gz
catalina.sh         configtest.sh                 setclasspath.sh   tool-wrapper.bat
catalina-tasks.xml  daemon.sh                     shutdown.bat      tool-wrapper.sh
ciphers.bat         digest.bat                    shutdown.sh       version.bat
ciphers.sh          digest.sh                     startup.bat       version.sh
commons-daemon.jar  makebase.bat                  startup.sh[root@localhost bin]# /usr/local/tomcat/bin/startup.sh 
#以catlina的方式啟動
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]# /usr/local/tomcat/bin/shutdown.sh 
#以catlina的方式關閉
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@localhost bin]# #創建tomcat用戶,更改其屬組
[root@localhost bin]# useradd -s /sbin/nologin tomcat
[root@localhost bin]# chown -R tomcat:tomcat /usr/local/tomcat
[root@localhost bin]# #配置service文件,可以使用systemctl托管
[root@localhost system]# vim tomcat.service 
[root@localhost system]# systemctl daemon-reload 
[root@localhost system]# systemctl restart tomcat
[root@localhost system]# systemctl status tomcat
#service文件配置
[Unit]
Description=Tomcat
After=syslog.target network.target[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat[Install]
WantedBy=multi-user.target#配置軟鏈接
[root@localhost system]# ln -s /usr/local/tomcat/bin/*     /usr/bin

安裝完成

在這里插入圖片描述

2、tomcat的虛擬主機的配置

2.1 配置多級目錄

[root@localhost data]# echo "abc" > abc/ROOT/index.html
[root@localhost data]# echo "def" > def/ROOT/index.html
[root@localhost data]# echo "xyz" > xyz/ROOT/index.html
[root@localhost data]# tree
.
├── abc
│?? └── ROOT??     └── index.html
├── def
│?? └── ROOT??     └── index.html
└── xyz└── ROOT└── index.html#找到主站點配置目錄
[root@localhost data]# cd /usr/local/tomcat/
[root@localhost tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@localhost tomcat]# cd conf/
[root@localhost conf]# ls
Catalina             context.xml           logging.properties  tomcat-users.xsd
catalina.policy      jaspic-providers.xml  server.xml          web.xml
catalina.properties  jaspic-providers.xsd  tomcat-users.xml
[root@localhost conf]# vim server.xml 
[root@localhost conf]# #添加三個站點目錄<Host name="www.abc.com"  appBase="/data/abc" unpackWARs="true" autoDeploy="true"></Host><Host name="www.def.com"  appBase="/data/def" unpackWARs="true" autoDeploy="true"></Host><Host name="www.xyz.com"  appBase="/data/xyz" unpackWARs="true" autoDeploy="true"></Host>#測試訪問虛擬主機 -- 成功
[root@localhost data]# curl www.abc.com:8080
abc
[root@localhost data]# curl www.def.com:8080
def
[root@localhost data]# curl www.xyz.com:8080
xyz

3、利用nginx的反向代理實現將轉發指向一個虛擬機

在這里插入圖片描述

機器IP地址
pc192.168.107.192
nginx192.168.107.10
tomcat192.168.107.12

3.1 nginx服務器的配置

#安裝nginx()
[root@localhost ~]# vim /etc/nginx/nginx.conf
#加入下面這三行(server模塊)
location / {proxy_pass  http://www.def.com:8080/;}vim /etc/hosts
192.168.107.12  www.abc.com  www.def.com  www.xyz.com

3.2 客戶端配置


vim /etc/hosts
192.168.107.10  www.abc.com  www.def.com   www.xyz.com#檢測訪問[root@localhost ~]# curl 192.168.107.10
abc
[root@localhost ~]# curl 192.168.107.10
abc
[root@localhost ~]# curl 192.168.107.10
abc
[root@localhost ~]# curl 192.168.107.10
abc
[root@localhost ~]# curl 192.168.107.10
abc
[root@localhost ~]# curl 192.168.107.10
abc
[root@localhost ~]# curl 192.168.107.10
def
[root@localhost ~]# curl 192.168.107.10
def
[root@localhost ~]# curl 192.168.107.10
def
[root@localhost ~]# curl 192.168.107.10
def
[root@localhost ~]# curl 192.168.107.10
def
[root@localhost ~]# curl 192.168.107.10
def
#成功

4、 反向多級代理

拓撲圖如下
在這里插入圖片描述

代理服務器操作

yum install  nginx -y
systemctl  start  nginx
vim  /etc/nginx/nginx.confupstream  web {server 192.168.91.101;server 192.168.91.102;}location  / {proxy_pass  http://web/;}nginx  -s reload

nginx 1 服務器

yum install  nginx -y
systemctl  start  nginxvim  /etc/nginx/nginx.conflocation ~  \.(jpg|html|png|css)$ {root         /usr/share/nginx/html;}location ~  \.jsp$ {proxy_pass http://192.168.91.103:8080;}echo  7-2  > /usr/share/nginx/html/index.html

nginx 2 服務器

yum install  nginx -y
systemctl  start  nginxvim  /etc/nginx/nginx.conflocation ~  \.(jpg|html|png|css)$ {root         /usr/share/nginx/html;}location ~  \.jsp$ {proxy_pass http://192.168.91.105:8080;}echo  7-3  > /usr/share/nginx/html/index.html

tomcat 1 服務器

安裝tomcatecho 7-4  > /usr/local/tomcat/webapps/ROOT/test.jsp

tomcat 2 服務器

安裝tomcatecho 7-5  > /usr/local/tomcat/webapps/ROOT/test.jp

結果展示

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81418.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81418.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81418.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于requests_html的python爬蟲

前言&#xff1a;今天介紹一個相對性能更高的爬蟲庫requests_html&#xff0c;會不會感覺和requests有點聯系&#xff1f;是的。為什么開始不直接介紹呢&#xff1f;因為我覺得requests是最基本入門的東西&#xff0c;并且在學習過程中也能學到很多東西。我的python老師在介紹這…

【架構篇】架構類型解釋

架構設計的本質&#xff1a;從模糊概念到系統化思維 摘要 “架構”是系統設計的靈魂&#xff0c;但許多人對它的理解仍停留在抽象層面。本文系統解析架構的8大核心維度&#xff0c;結合設計原則、案例與誤區分析&#xff0c;幫助開發者建立從戰略到落地的完整認知框架。 一、架…

用Python繪制夢幻星空

用Python繪制夢幻星空 在這篇教程中&#xff0c;我們將學習如何使用Python創建一個美麗的星空場景。我們將使用Python的圖形庫Pygame和隨機庫來創建閃爍的星星、流星和月亮&#xff0c;打造一個動態的夜空效果。 項目概述 我們將實現以下功能&#xff1a; 創建深藍色的夜…

PyTorch循環神經網絡(Pytotch)

文章目錄 循環神經網絡&#xff08;RNN&#xff09;簡單的循環神經網絡長短期記憶網絡&#xff08;LSTM&#xff09;門控循環單元&#xff08;GRU&#xff09; 循環神經網絡&#xff08;RNN&#xff09; 循環神經網絡&#xff08;RecurrentNeuralNetwork&#xff0c;RNN&#…

用算術右移實現邏輯右移及用邏輯右移實現算術右移

函數srl()用算術右移實現邏輯右移&#xff0c;函數sra()用邏輯右移實現算術右移。 程序代碼 int sra(int x,int k); unsigned int srl(unsigned int x, int k);void main() {int rx1,k,x1;unsigned int rx2,x2;k3;x10x8777;x20x8777;rx1sra(x1, k);rx2srl(x2, k);while(1); }…

pojo層、dao層、service層、controller層的作用

在Java Web開發中&#xff0c;常見的分層架構&#xff08;如Spring Boot項目&#xff09;通常包含POJO層、DAO層、Service層和Controller層&#xff0c;各層職責明確&#xff0c;協同工作。以下是各層的作用及相互關系&#xff1a; 1. POJO層&#xff08;Model/Entity層&#…

【Linux網絡】五種IO模型與阻塞IO

IO 在Linux網絡環境里&#xff0c;IO&#xff08;Input/Output&#xff09;指的是網絡數據在系統與外部網絡&#xff08;像其他設備、服務器或者客戶端&#xff09;之間進行傳輸的過程。 它是網絡編程和系統性能優化的核心內容。 IO &#xff1a;INPUT和OUTPUT&#xff08;站…

入門OpenTelemetry——應用自動埋點

埋點 什么是埋點 埋點&#xff0c;本質就是在你的應用程序里&#xff0c;在重要位置插入采集代碼&#xff0c;比如&#xff1a; 收集請求開始和結束的時間收集數據庫查詢時間收集函數調用鏈路信息收集異常信息 這些埋點數據&#xff08;Trace、Metrics、Logs&#xff09;被…

大數據場景下數據導出的架構演進與EasyExcel實戰方案

一、引言&#xff1a;數據導出的演進驅動力 在數字化時代&#xff0c;數據導出功能已成為企業數據服務的基礎能力。隨著數據規模從GB級向TB級甚至PB級發展&#xff0c;傳統導出方案面臨三大核心挑戰&#xff1a; ?數據規模爆炸?&#xff1a;單次導出數據量從萬級到億級的增長…

拓展運算符與數組解構賦值的區別

拓展運算符與數組解構賦值是ES6中用于處理數組的兩種不同的特性&#xff0c;它們有以下區別&#xff1a; 概念與作用 ? 拓展運算符&#xff1a;主要用于將數組展開成一系列獨立的元素&#xff0c;或者將多個數組合并為一個數組&#xff0c;以及在函數調用時將數組作為可變參…

2025年全國青少年信息素養大賽初賽真題(算法創意實踐挑戰賽C++初中組:文末附答案)

2025年全國青少年信息素養大賽初賽真題(算法創意實踐挑戰賽C++初中組:文末附答案) 一、單項選擇題(每題 5 分) C++ 程序流程控制的基本結構不包括以下哪項? A. 分支結構 B. 數據結構 C. 循環結構 D. 順序結構 以下哪段代碼能將數組 int a[4] = {2, 4, 6, 8}; 的所有元素變…

計算機視覺與深度學習 | Python實現EMD-CNN-LSTM時間序列預測(完整源碼、數據、公式)

EMD-CNN-LSTM 1. 環境準備2. 數據生成(示例數據)3. EMD分解4. 數據預處理5. CNN-LSTM模型定義6. 模型訓練7. 預測與重構8. 性能評估核心公式說明1. 經驗模態分解(EMD)2. CNN-LSTM混合模型參數調優建議擴展方向典型輸出示例以下是使用Python實現EMD-CNN-LSTM時間序列預測的完…

React 19中useContext不需要Provider了。

文章目錄 前言一、React 19中useContext移除了Provider&#xff1f;二、使用步驟總結 前言 在 React 19 中&#xff0c;useContext 的使用方式有所更新。開發者現在可以直接使用 作為提供者&#xff0c;而不再需要使用 <Context.Provider>。這一變化簡化了代碼結構&…

單片機-STM32部分:14、SPI

飛書文檔https://x509p6c8to.feishu.cn/wiki/VYYnwOc9Zi6ibFk36lYcPQdRnlf 什么是SPI SPI 是英語Serial Peripheral interface的縮寫&#xff0c;顧名思義就是串行外圍設備接口。是Motorola(摩托羅拉)首先在其MC68HCXX系列處理器上定義的。 SPI&#xff0c;是一種高速的&…

Vue 3 動態 ref 的使用方式(表格)

一、問題描述 先給大家簡單介紹一下問題背景。我正在開發的項目中&#xff0c;有一個表格組件&#xff0c;其中一列是分鏡描述&#xff0c;需要支持視頻上傳功能。用戶可以為每一行的分鏡描述上傳對應的視頻示例。然而&#xff0c;在實現過程中&#xff0c;出現了一個嚴重的問…

構建 TypoView:一個富文本樣式預覽工具的全流程記錄

我正在參加CodeBuddy「首席試玩官」內容創作大賽&#xff0c;本文所使用的 CodeBuddy 免費下載鏈接&#xff1a;騰訊云代碼助手 CodeBuddy - AI 時代的智能編程伙伴 在一次和 CodeBuddy 的日常交流中&#xff0c;我提出了一個構想&#xff1a;能不能幫我從零構建一個富文本樣式…

AI:OpenAI論壇分享—《AI重塑未來:技術、經濟與戰略》

AI&#xff1a;OpenAI論壇分享—《AI重塑未來&#xff1a;技術、經濟與戰略》 導讀&#xff1a;2025年4月24日&#xff0c;OpenAI論壇全面探討了 AI 的發展趨勢、技術范式、地緣政治影響以及對經濟和社會的廣泛影響。強調了 AI 的通用性、可擴展性和高級推理能力&#xff0c;以…

Bash fork 炸彈 —— :(){ :|: };:

&#x1f9e0; 什么是 Fork 炸彈&#xff1f; Fork 炸彈是一種拒絕服務&#xff08;DoS&#xff09;攻擊技術&#xff0c;利用操作系統的 fork() 系統調用不斷創建新進程&#xff0c;直到系統資源&#xff08;如進程表、CPU、內存&#xff09;被耗盡&#xff0c;從而使系統無法…

<前端小白> 前端網頁知識點總結

HTML 標簽 1. 標題標簽 h1到h6 2. 段落標簽 p 3. 換行 br 水平線 hr 4. 加粗 strong 傾斜 em 下劃線 ins 刪除 del 5. 圖像標簽 img src-圖像的位置 alt- 圖片加載失敗顯示的文字 替換文本 title--- 鼠標放到圖片上顯示的文字 提示…

tomcat查看狀態頁及調優信息

準備工作 先準備一臺已經安裝好tomcat的虛擬機&#xff0c;tomcat默認是狀態頁是默認被禁用的 1.添加授權用戶 vim /usr/local/tomcat/conf/tomcat-users.xml22 <role rolename"manager-gui"/>23 <user username"admin" password"tomcat&q…