
文章目錄
- 1 問題背景
- 2 分析思路
- 3 總結
1 問題背景
最近在阿里云重新搭建了生產環境的若依系統,但是一直無法訪問若依系統的后臺首頁,在本地用IDEA加虛擬機是完全沒問題,能正常訪問,
2 分析思路
- 先檢查阿里云服務器是否開啟了防火墻,一般都開啟了,因此需要在防火墻配置若依系統用到的埠號,相關的命令列如下:
# 查看防火墻是否開啟
firewall-cmd --state
# 或
systemctl status firewalld
# 查看防火墻已開啟的埠
firewall-cmd --zone=public --list-ports
# 添加防火墻埠號
firewall-cmd --zone=public --add-port=埠號/tcp --permanent
# 洗掉防火墻埠號
firewall-cmd --zone=public --remove-port=埠號/tcp --permanent
# 重新加載防火墻配置
firewall-cmd --reload
-
阿里云服務器還默認開啟了埠安全策略,需要前往阿里云Web控制臺配置埠號才能正常訪問專案
-
涉及到Nginx容器,必須要檢查nginx組態檔的監聽埠號是否正確,注意,這里是講Nginx容器,非容器不需要太關注這點,首先使用
docker ps -a命令查看Nginx容器監聽的埠號,如下圖所示,后面的是Nginx容器的埠號,前面的是阿里云服務器的埠:

如上圖所示:當我訪問阿里云服務器IP:11180地址時,服務器會將資料轉發到Nginx容器的80埠,一個是服務器的埠,是物理存在的,一個是容器埠,是邏輯上虛擬的,驗證能否訪問成功,最簡單的就是輸入curl http://localhost:阿里云服務器埠號 -
帶著前面看到的
11180以及80埠去檢查Nginx容器的組態檔,Nginx容器的組態檔是一個/xxx/conf.d/default.conf,檢查組態檔中監聽的埠號是不是Nginx容器的埠號80,如下所示:

-
檢查專案中前端配置的埠與Nginx容器配置的阿里云服務器埠
11180一致,因為前端專案是打包放在了Nginx容器的掛載的資料卷路徑上面的,因此要與服務器埠一致,而不是容器的埠, -
檢查Nginx組態檔轉發到后端專案的埠號是否與后端專案配置的一致,如下圖所示:

如上圖所示19393就是后端專案的埠號 -
檢查Nginx組態檔配置的前端靜態資源(前端的dist包)路徑是否正確,需要使用
docker inspect nginx命令查看Nginx容器掛載的資料卷路徑,如下圖所示:

我們把前端的資源包放在服務器的路徑上,但是Nginx組態檔中要寫容器內的路徑,
3 總結
- 檢查防火墻埠號
- 檢查組態檔配置的埠
- 用
curl http://localhost:Nginx容器的阿里云服務器埠號測驗是否能通
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/302756.html
標籤:其他
