网站打包: 项目开发完成以后,使用Maven的package命令对模块打包,

  1. 网站部署:网站开发并打包完成以后,需要部署到服务器上运行。网站部署方式是使用Nginx作为反向代理服务器,将网络请求转发为Web服务器Tomcat,通过Nginx的access log记录用户访问行为。
  2. 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;
        }
    }
}
  1. 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"}';
  1. 配置Tomcat集群,使用upstream配置Web服务器集群,frame-tomcat为网站模块的服务器集群
upstream frame-tomcat {
        server hadoop1:8180 weight=1;
server hadoop2:8189 weight=2;
    }
  1. 配置网站server。
  • server_name:网站模块的域名
  • location:配置转发路由,将接收到的网站用户请求转发给网站模块的tomcat集群。
server {
        listen       80;
        server_name  frame.site;
        location / {
          proxy_pass http://frame-tomcat;
        }
     }
  1. 验证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
  1. 系统部署

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\目录下。

  1. 配置网站hosts,例如部署网站模块和日志模块的服务器IP地址为192.168.68.129,配置虚拟的域名指向这个IP地址。
192.168.68.129 frame.site
  1. 查看Nginx的access log日志,使用tail -f命令,看是否正常生成网站日志。
[root@master ~]# tail -f $NGINX_HOME/logs/frame/access.log