網站打包: 專案開發完成以后,使用Maven的package命令對模塊打包,
- 網站部署:網站開發并打包完成以后,需要部署到服務器上運行,網站部署方式是使用Nginx作為反向代理服務器,將網路請求轉發為Web服務器Tomcat,通過Nginx的access log記錄用戶訪問行為,
- Nginx默認配置,Nginx提供了一個默認的配置,實作了基本的功能,在進行配置之前,首先通過Nginx默認的組態檔了解Nginx組態檔的基本結構,
- 全域塊:配置nginx全域指令,包括:nginx服務器的用戶組,nginx行程pid存放路徑,日志存放路徑,允許生成worker process的數量等,
- events塊:配置nginx服務器的網路連接,主要有:每個行程的最大連接數;選取哪種事件驅動模型處理連接請求,是否允許同時接受多個網路連接,開啟多個網路連接序列化等,
- http塊:可以嵌套多個server,配置代理,快取,日志定義等絕大多數功能和第三方模塊的配置,如檔案引入,mime-type定義,日志自定義,是否使用sendfile傳輸檔案,連接超時時間,單連接請求數等,
- server塊:配置虛擬主機的相關引數,一個http中可以有多個server,
- location塊:配置請求的路由,以及各種頁面的處理情況,
| worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } |
- Nginx日志格式:以Nginx的access log(訪問日志)作為實時分析的資料來源
| 變數 | 說明 |
| $remote_addr | 記錄訪問網站的客戶端地址 |
| $remote_user | 遠程客戶端用戶名 |
| $time_local | 記錄訪問時間與時區 |
| $request | 用戶的http請求起始行資訊 |
| $status | http狀態碼,記錄請求回傳的狀態碼 |
| $body_bytes_sent | 服務器發送給客戶端的回應body位元組數 |
| $http_referer | 記錄此次請求是從哪個連接訪問過來的 |
| $http_user_agent | 記錄客戶端訪問資訊 |
| $http_x_forwarded_for | 當前端有代理服務器時,設定web節點記錄客戶端地址的配置 |
Nginx提供了默認的日志格式的配置
| log_format main '$remote_addr - $remote_user [$time_local]"$request" ' '''$status $body_bytes_sent "$http_referer" ' "$http_user_agent" "$http_x_forwarded_for"'; |
Nginx網站的默認日志的主要特點是網站日志格式比較緊湊,節省存盤空間,但是相對于JSON的資料格式,可讀性相對較差,根據需要也可以將日志配置為JSON格式,
| log_format main_json '{"@timestamp":"$time_iso8601","host":"$server_addr","clientip":"$remote_addr",' '"remote_user":"$remote_user","request":"$request","http_user_agent":"$http_user_agent",' '"size":"$body_bytes_sent","responsetime":"$request_time",' '"upstreamtime":"$upstream_response_time",'"upstreamhost":"$upstream_addr",' '"http_host":"$host","url":"$uri","domain":"$host",'"xff":"$http_x_forwarded_for",' '"referer":"$http_referer","status":"$status"}'; |
- 配置Tomcat集群,使用upstream配置Web服務器集群,frame-tomcat為網站模塊的服務器集群
| upstream frame-tomcat { server hadoop1:8180 weight=1; server hadoop2:8189 weight=2; } |
- 配置網站server,
- server_name:網站模塊的域名
- location:配置轉發路由,將接收到的網站用戶請求轉發給網站模塊的tomcat集群,
| server { listen 80; server_name frame.site; location / { proxy_pass http://frame-tomcat; } } |
- 驗證Nginx配置,運行Nginx安裝目錄的sbin目錄下nginx -t命令驗證Nginx配置是否正確,如果配置出錯,可根據錯誤提示資訊對配置進行修改,
| [root@master ~]# $NGINX_HOME/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful |
- 系統部署
Nginx配置完成以后,在服務器上部署網站模塊和日志模塊,首先將已經打包好的檔案上傳到服務器指定的目錄,運行java -jar 命令啟動Web服務,然后再啟動Nginx,主要命令如下:
- 上傳專案jar包到服務器指定位置如:/opt/jar目錄下,使用cd命令切換到部署目錄
| [root@master ~]# cd /opt/jar |
- 使用java -jar命令啟動日志服務,xxx.jar為日志模塊的包,
| [root@master jar]# java -jar xxx.jar |
- 啟動nginx,執行nginx安裝目錄的sbin目錄下的nginx命令
| [root@master jar]# $NGINX_HOME/sbin/nginx |
Windows作業系統的hosts組態檔一般在
C:\Windows\System32\drivers\etc\目錄下,
- 配置網站hosts,例如部署網站模塊和日志模塊的服務器IP地址為192.168.68.129,配置虛擬的域名指向這個IP地址,
| 192.168.68.129 frame.site |
- 查看Nginx的access log日志,使用tail -f命令,看是否正常生成網站日志,
| [root@master ~]# tail -f $NGINX_HOME/logs/frame/access.log |
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336204.html
標籤:其他
