nginx反向代理(2)

一、Nginx 配置實例1:反向代理

1.一、實現效果

(1)、打開瀏覽器,地址欄輸入 www.123.com,跳轉到 Linux 系統 tomcat 主頁面中。css

1.二、準備工做

1.2.一、在 Linux 系統安裝 tomcat,使用默認端口 8080

(1)、將下載的 jdk 上傳到 /usr/local 下,而後解壓html

tar -zxvf jdk-8u212-linux-x64.tar.gz

解壓完成後咱們會看到 /usr/local 目錄下有一個 jdk 1.8.0_212 的目錄java

(2)、配置環境變量python

vim /etc/profile

在文件末尾添加以下內容:linux

# jdk環境變量配置
JAVA_HOME=/usr/jdk/jdk1.8.0_212
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

注:export JAVA_HOME 後接 jdk1.8 的安裝路徑。nginx

(3)、使環境變量生效web

source /etc/profile

(4)、驗證jdk1.8是否安裝成功apache

java -version

以下所示,表示jdk1.8安裝成功:vim

[root@localhost local]# java -version
java version "1.8.0_212" Java(TM) SE Runtime Environment (build 1.8.0_212-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode) 

(5)、啓動 tomcat ,進入 tomcat 解壓 目錄下的 */bin/ (/root/usr/ll/apache-tomcat-9.0.20/bin/)目錄下,輸入以下命令啓動:windows

./startup.sh

進入日誌文件目錄下*/log/ (/root/usr/ll/apache-tomcat-9.0.20/log/)查看啓動日誌狀況,輸入以下命令:

tail -f catalina.out 

在主機瀏覽器輸入IP和端口號查看,是否可訪問。

1.2.二、在 Linux 系統安裝 tomcat,使用默認端口 8080

(1)、linux 安裝了tomcat 啓動後沒法訪問解決辦法

、首先查下看 Linux是否開放了端口

netstat -ntpl

netstat -nupl (UDP類型的端口)

netstat -ntpl (TCP類型的端口)

a 表示全部
n 表示不查詢dns
t 表示tcp協議
u 表示udp協議
p 表示查詢佔用的程序
l 表示查詢正在監聽的程序

若出現:-bash: netstat: 未找到命令,則先安裝 net-tools

yum -y install net-tools

、輸入命令查看:

[root@localhost logs]# netstat -ntpl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12143/nginx: master tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6133/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6460/master tcp6 0 0 :::8009 :::* LISTEN 15992/java tcp6 0 0 :::8080 :::* LISTEN 15992/java tcp6 0 0 :::22 :::* LISTEN 6133/sshd tcp6 0 0 ::1:25 :::* LISTEN 6460/master tcp6 0 0 127.0.0.1:8005 

(2)、端口號是否是防火牆被攔截了

  防火牆負責端口是否對外開放,若是在配置中設置了不攔截咱們就能夠經過該端口訪問服務器;若是不設置該端口對外開放,咱們就不能經過該端口訪問服務器

、檢查防火牆是否在運行地的狀態

systemctl status firewalld
[root@localhost bin]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since 日 2019-10-06 09:20:12 CST; 5h 54min ago Docs: man:firewalld(1) Main PID: 5600 (firewalld) CGroup: /system.slice/firewalld.service └─5600 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 

上面標識防火牆正在運行。

若是沒有開啓防火牆:
開啓防火牆:

systemctl start firewalld

設置防火牆開機啓動:

systemctl enable firewalld

(3)、端口開放設置
1)、查看放火牆對外開放的端口:

firewall-cmd --zone=public --list-ports 
[root@localhost bin]# firewall-cmd --zone=public --list-ports 80/tcp 

上面即是對防火牆開放端口列表。

2)、開啓須要使用的端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent 

其中--permanent 的做用是使設置永久生效,不加的話機器重啓以後失效

3)、從新載入一下防火牆設置,使設置生效

firewall-cmd --reload

4)、可經過以下命令查看是否生效

firewall-cmd --zone=public --query-port=8080/tcp 

(4)、端口限制

#要限制的端口 firewall-cmd --zone=public --remove-port=8080/tcp --permanent #重新加載防火牆,使設置生效 firewall-cmd --reload #再去查看系統全部開放的端口,限制的端口是否還存在 firewall-cmd --zone=public --list-ports 

(5)、批量開放或限制端口
1)、批量開放端口,如從100到500這之間的端口所有要打開

firewall-cmd --zone=public --add-port=100-500/tcp --permanent 

2)、批量限制端口,如從600到800這之間的端口所有限制

firewall-cmd --zone=public --remove-port=600-800/tcp --permanent 

3)、從新載入防火牆設置

firewall-cmd --reload

1.三、訪問過程分析

 
 

1.四、具體配置

1.4.一、在windows 系統的 host 文件中進行域名和 IP 對應關係的配置

位置:C:\Windows\System32\drivers\etc\hosts

添加內容:

192.168.92.128  www.123.com
1.4.二、在 nginx 中進行請求轉發的配置(反向代理配置)

在配置文件中配置以下:


 
 

1.五、測試

 
 

二、Nginx 配置實例2:反向代理

實現效果:

&emps; 使用 nginx 反向代理,根據訪問的路徑跳轉到不一樣端口的服務中,
  nginx 監聽端口爲 9001,
  訪問:http: //192.168.92.128:9001/edu/ 直接跳轉到 192.168.92.128:8080
  訪問:http: //192.168.92.128:9001/vod/ 直接跳轉到 192.168.92.128:8081

2.一、準備工做
(1)準備兩個 tomcat 端口分別爲 8080、8081

①、在 tomcat 解壓文件或壓縮文件所在目錄下分別建立 tomcat8080、tomcat8081 文件夾。

[root@localhost ll]# ls
apache-tomcat-9.0.20  apache-tomcat-9.0.20.tar.gz  nginx-1.16.1  nginx-1.16.1.tar.gz  tomcat8080  tomcat8081

②、將解壓的 apache-tomcat-9.0.20 分別複製一份到 tomcat8080 和 tomcat8081 中;或從新解壓到 tomcat8080 和 tomcat8081 中

cp -r apache-tomcat-9.0.20 tomcat8080  
cp -r apache-tomcat-9.0.20 tomcat8081

③、修改 tomcat8081 中 tomcat 配置文件的 端口

22 <Server port="8005" shutdown="SHUTDOWN"> 23 <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> 24 <!-- Security listener. Documentation at /docs/config/listeners.html 25 <Listener className="org.apache.catalina.security.SecurityListener" /> 
68     -->
 69     <Connector port="8081" protocol="HTTP/1.1" 70 connectionTimeout="20000" 71 redirectPort="8443" /> 72 <!-- A "Connector" using the shared thread pool--> 73 <!-- 
115     <!-- Define an AJP 1.3 Connector on port 8009 --> 116 <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" /> 117 118 119 <!-- An Engine represents the entry point (within Catalina) that processes 120 every request. The Engine implementation for Tomcat stand alone 
(2)添加對應的顯示

分別在tomcat8080、tomcat8081中的 Tmocat 的 webapps 文件下建立 edu和vod文件,並在文件夾裏添加 a.html 文件。內容本身定義,可區分便可;

2.二、nginx 反向代理配置

進入nginx 的配置文件 nginx.conf 所在的位置,進行配置,配置以下:

83 # another virtual host using mix of IP-, name-, and port-based configuration 84 # 85 server { 86 listen 9001; 87 # listen somename:8080; 88 server_name 192.168.92.128; 89 90 location ~ /edu/ { 91 proxy_pass http://127.0.0.1:8080; 92 # root html; 93 # index index.html index.htm; 94 } 95 location ~ /vod/ { 96 proxy_pass http://127.0.0.1:8081; 97 } 98 } 99 
2.三、開放對應的端口號,並測試
相關文章
相關標籤/搜索