Nginx模块

本节介绍WeEvent服务Nginx模块的详细安装步骤。WeEvent服务的快速安装请参见WeEvent快速安装 。在一台机器上详细安装,和通过快速安装然后把目标路径中的nginx子目录打包拷贝到这台机器,效果是一样的。

WeEvent默认使用Nginx实现负载均衡。也可以换成H5等其他负载均衡服务。端口映射关系详见服务访问

如果是第一次安装WeEvent,参见这里的系统要求 。以下安装以CentOS 7.2为例。

安装Nginx

Nginx版本没有特别的要求。HTTPS访问时需要--with-http_ssl_moduleMQTT over TCP访问时需要--with-stream --with-stream_ssl_module。如下:

$ ./nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --with-http_ssl_module --with-stream --with-stream_ssl_module

然后将WeEventNginx配置文件,覆盖./nginx/conf/目录即可。另外:快速安装包weevent-1.0.0.tar.gz./modules/nginx/conf目录中也包含这些配置文件。

$ tree
`-- conf
    |-- conf.d
    |   |-- http.conf
    |   |-- http_rs.conf
    |   |-- https.conf
    |   |-- tcp.conf
    |   |-- tcp_rs.conf
    |   `-- tcp_tls.conf
    |-- nginx.conf
    |-- scgi_params
    |-- server.crt
    |-- server.key
    `-- server.pem

Nginx常见配置

  • 修改Nginx监听端口

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

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

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

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

      upstream broker_backend{
          server 1.1.1.1:7000 weight=100 max_fails=3;
          server 2.2.2.2:7000 weight=100 max_fails=3;
    
          ip_hash;
          keepalive 1024;
      }
    
      upstream broker_mqtt_websocket_backend {
          server 1.1.1.1:7002 weight=100 max_fails=3;
          server 2.2.2.2:7002 weight=100 max_fails=3;
    
        ip_hash;
          keepalive 1024;
      }
      upstream processor_backend{
        server 1.1.1.1:7008 weight=100 max_fails=3;
        server 2.2.2.2:7008 weight=100 max_fails=3;
    
      ip_hash;
          keepalive 1024;
      }
      upstream governance_backend{
        server 1.1.1.1:7009 weight=100 max_fails=3;
        server 2.2.2.2:7009 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/https.conf;
    ...
    include                 ./conf.d/tcp_tls.conf;
    
  • 修改Nginx监听端口

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

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

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

服务启停

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

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

通过./nginx.sh stop命令停止。

进程启动后,会自动添加crontab监控任务./nginx.sh monitor