nginx配置說明以及VeryNginx使用

 

爲了解決在門戶訪問各子系統時出現的javascript跨域錯誤,我們需要安裝nginx反向代理工具來將不同子系統的訪問路徑映射到同一URL下面。

  1. 安裝nginx
    1. 建議在線安裝,內網環境需要掛載相應的源

 yum -y install nginx

    1. 離線安裝,會涉及大量的依賴的下載,可參考文檔:https://blog.csdn.net/w410589502/article/details/70787468
  1. 配置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 reloadCopy to clipboardErrorCopied

3.2 訪問

#英文
http://[IP]:[port]/verynginx/index.html
#中文
http://[IP]:[port]/verynginx/index_zh.htmlCopy 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 openrestyCopy 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按鈕,點擊後纔會保存成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章