爲了解決在門戶訪問各子系統時出現的javascript跨域錯誤,我們需要安裝nginx反向代理工具來將不同子系統的訪問路徑映射到同一URL下面。
- 安裝nginx
- 建議在線安裝,內網環境需要掛載相應的源
yum -y install nginx
-
- 離線安裝,會涉及大量的依賴的下載,可參考文檔:https://blog.csdn.net/w410589502/article/details/70787468
- 配置nginx
修改安裝包提供的配置文件nginx.conf,將其中每個應用的訪問url修改爲現場正確的url地址,如下圖中圈起的url都需要調整:
3, 修改配置後重新啓動nginx: service nginx start
3.1如果啓動失敗,出現如下錯誤,則爲nginx代理端口衝突引起:
調整配置文件nginx.conf中的如下屬性:
3.2如果啓動失敗,出現如下錯誤:
則先創建目錄 /run:
mkdir /run
然後再啓動:
service nginx start
到安裝nginx 目錄如/usr/local/nginx/sbin 啓動nginx ./nginx
如果要關閉或者重啓nginx 則ps -ef | grep nginx 然後殺掉master,worker 進程 重新啓動
4, 訪問門戶:http://ip:81/portal
注意:
門戶也一定要配置在Nginx.conf中進行代理 然後登陸門戶一定要用nginx代理端口81
如果用門戶本身的TAS端口8181打開門戶,那麼掛在門戶上的所有子系統,及菜單,沒有走Nginx 故都訪問失敗
VeryNginx
1.簡介
VeryNginx是一個功能強大而對人類友好的 Nginx 擴展程序。邏輯通過 lua 實現,嵌入到 Nginx 中,提供了更友好的 web 交互界面。
2.功能介紹
2.1 Nginx 運行狀態分析
- 每秒請求數
- 響應時間
- 網絡流量
- 網絡連接數
2.2 請求過濾
VeryNginx可以基於按照以下信息對請求進行過濾:
- IP
- UserAgent
- 請求路徑(URI)
- 請求參數
2.3 訪問統計
VeryNginx 可以統計網站每個 URI 的訪問情況,包括每個 URI 的:
- 總請求次數
- 各狀態碼次數
- 返回總字節數
- 每請求平均字節數
- 總響應時間
- 平均響應時間
3.安裝
git clone https://github.com/alexazhou/VeryNginx.git
python install.py install
VeryNginx 默認會被裝到/opt/verynginx/目錄
Copy to clipboardErrorCopied
3.1 啓動停止
#Start Service
/opt/verynginx/openresty/nginx/sbin/nginx
#Stop Service
/opt/verynginx/openresty/nginx/sbin/nginx -s stop
#Restart Service
/opt/verynginx/openresty/nginx/sbin/nginx -s reload
Copy to clipboardErrorCopied
3.2 訪問
#英文
http://[IP]:[port]/verynginx/index.html
#中文
http://[IP]:[port]/verynginx/index_zh.html
Copy to clipboardErrorCopied
4.使用
4.1 編輯 Nginx 配置文件
VeryNginx 的配置文件位置爲 /opt/verynginx/openresty/nginx/conf/nginx.conf,將配置好的 Nginx配置加入到其中。
這個配置文件在普通的 Nginx 配置文件基礎上添加了三條 Include 指令來實現功能,分別爲
- include /opt/verynginx/verynginx/nginx_conf/in_external.conf;
- include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf;
- include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf;
以上三條指令分別放在 http 配置塊外部,http 配置塊內部,server 配置塊內部,在修改時請保留這三條。如果添加了新的 Server 配置塊或 http 配置塊,也需要在新的塊內部加入對應的 include 行。
4.2 匹配器(Matcher)
對請求進行匹配,用來判斷一個 Http 請求是否符合指定的條件
- *URI 請求路徑,訪問地址中域名之後的部分
- Host 客戶訪問時使用的域名(=、!=、≈、!≈)
- UserAgent 用戶瀏覽器的UserAgent字段(=、!=、≈、!≈、存在、不存在)
- Referer 請求來源網頁(=、!=、≈、!≈、存在、不存在)
- *IP 客戶端IP (=、!=)
- Args 請求參數匹配(=、!=、≈、!≈) 請求體body需要content-type爲application/x-www-form-urlencoded
- Header
- Method
- Cookie
ps: = 等於; !=不等於; ≈ 符合某個正則表達式; !≈ 不符合某個正則表達式
4.2 行爲(Action)
執行的動作,Action 會引用一個 Matcher ,當 Matcher 命中時, Action 會被執行
- 協議鎖定(Scheme Lock):將訪問協議鎖定爲 Https 或者 Http
- 重定向(Redirect):對請求進行重定向
- URI重寫(URI Rewrite):對請求的 URI 進行內部重寫
- 瀏覽器驗證(Browser Verify):通過set-cookies 和 js 驗證客戶端是否爲瀏覽器,並攔截非瀏覽器流量
- 訪問頻率限制(Frequency Limit)
- 過濾器(Filter)
4.3 響應(Response)
Matcher 命中 定義響應結果
- application/json
- text/html
4.4 後端(Backend)
Matcher 命中
- 反向代理(Proxy Pass) 將請求反向代理到其它服務器
- 靜態文件 使用本地文件處理請求
5.更新
#更新 Verynginx
python install.py update verynginx
#更新 OpenResty
python install.py update openresty
Copy to clipboardErrorCopied
6.常見問題
6.1.安裝時候
安裝必要的庫,缺少時會引起編譯不成功
yum install gcc
yum install pcre pcre-devel
yum install openssl openssl-devel
Copy to clipboardErrorCopied
6.2.中文控制檯
概況第一次進入訪問的是臨時,應該爲所有(英文的是)
修改/opt/verynginx/verynginx/dashboard/js/data_stat.js,
內容如下:
data_stat.current_group = function(){
var group = null;
if ($("#def_btn").text() == 'Temporary') {
group = 'temporary';
} else {
group = 'persistent';
};
return group;
}
Copy to clipboardErrorCopied
6.3 JS無法訪問
頁面上的JS需要聯網下載
6.4 頁面上新增/修改配置無法保存
在添加後在頁面底部右下角有save按鈕,點擊後纔會保存成功