Nginx模块

WeEvent通过Nginx实现负载均衡。

WeEvent服务支持主流的Linux发行版,如CentOSUbuntuRedhat。本节介绍WeEvent服务Nginx模块的详细安装步骤。WeEvent服务的快速安装请参见WeEvent快速安装

以下安装以CentOS 7.2为例。

安装Nginx

下载安装包weevent-nginx安装包,解压到/usr/local/weevent/下。

$ cd /usr/local/weevent/
$ wget https://github.com/WeBankFinTech/WeEvent/releases/download/v1.0.0/weevent-nginx-1.0.0.tar.gz
$ tar -zxf weevent-nginx-1.0.0.tar.gz

解压后目录结构如下:

$ cd ./weevent-nginx-1.0.0
$ tree -L 2
.
|-- build-nginx.sh
|-- conf
|   |-- server.crt
|   |-- server.key
|   |-- conf.d
|   `-- nginx.conf
|-- nginx.sh
`-- third-packages
    |-- nginx-1.14.2.tar.gz
    `-- pcre-8.20.tar.gz

编译安装Nginx,操作如下

$ ./build-nginx.sh -p /user/local/nginx
build & install pcre
build & install nginx
nginx install complete!

Nginx常见配置

  • 修改Nginx监听端口

    在配置文件./conf/conf.d/http.conf里修改Nginx监听端口。其他配置项一般不需要修改。

    server {
      	#配置nginx的监听端口
        listen          8080;
        server_name     localhost;
    
        ...
    }
    
  • 修改WeEvent子模块反向代理

    在配置文件./conf/conf.d/http_rs.conf 里设置子模块BrokerGovernance的实例。

    每增加一个实例,在这个配置文件里对应加一行server项,比如:

    upstream broker_backend{
        server 1.1.1.1:8090 weight=100 max_fails=3;
        server 2.2.2.2:8090 weight=100 max_fails=3;
    
        ip_hash;
        keepalive 1024;
    }
    
    upstream broker_mqtt_websocket_backend {
        server 1.1.1.1:8092 weight=100 max_fails=3;
        server 2.2.2.2:8092 weight=100 max_fails=3;
    	ip_hash;
      	keepalive 1024;
    }
    
    upstream governance_backend{
    	server 1.1.1.1:8099 weight=100 max_fails=3;
    	server 2.2.2.2:8099 weight=100 max_fails=3;
    	ip_hash;
     	keepalive 1024;
    }
    

Nginx配置TLS访问

  • 切换到TLS访问

    默认的配置支持HTTPTCP访问。通过./conf/nginx.conf文件配置TLS访问,将

    include                 ./conf.d/http.conf;
    ...
    include                 ./conf.d/tcp.conf;
    

    对应改成

    include                 ./conf.d/http_rs.conf;
    

… include ./conf.d/tcp_rs.conf;


- 修改Nginx监听端口

在配置文件`./conf/conf.d/https.conf`里修改`Nginx`监听端口。其他配置项一般不需要修改。

```nginx
nginx
	server {
		listen          443 ssl;
		server_name     localhost;
		...
}
  • 修改WeEvent子模块反向代理

    和上面HTTP访问的修改步骤一致。

服务启停

通过./nginx.sh start命令启动Nginx,正常启动如下:

$ ./nginx.sh start
start nginx success (PID=3643)
add the crontab job success

通过./nginx.sh stop停止Nginx

./nginx.sh start命令会启动进程,并且将进程监控命令./broker.sh monitor添加到crontab里。

./broker.sh stop命令在进程成功停止后会移除crontab监控任务。