更新时间:2024-08-02 GMT+08:00

为代理服务器安装配置nginx

nginx负责将第三方服务器的请求转发至HSS后台管理后台。

为代理服务器安装配置nginx

  1. 登录代理服务器
  2. 检查yum源

    检查yum源是否有nginx软件包,如果没有nginx软件包需完成yum源配置,并临时绑定公网IP,待安装结束之后再解绑公网IP。

    远程登录代理服务器,执行以下命令检查yum源中是否存在nginx包。

    • EulerOS、CentOS、Red Hat等支持rpm安装软件的OS:yum list nginx
    • Ubuntu、Debian等支持deb安装软件的OS:apt list nginx
    显示如图 nginx包存在(rpm)图 nginx包存在(deb)所示表示nginx包存在。
    图1 nginx包存在(rpm)
    图2 nginx包存在(deb)

  3. 安装nginx

    1. 执行以下命令使用yum安装nginx。
      • EulerOS、CentOS、Red Hat等支持rpm安装软件的OS:yum install -y nginx
      • Ubuntu、Debian等支持deb安装软件的OS:apt install –y nginx
      图3 安装nginx(yum)
      图4 安装nginx(apt)
    2. 查看nginx是否安装成功。
      • EulerOS、CentOS、Red Hat等支持rpm安装软件的OS:
        自动执行安装,出现如图 nginx安装成功(rpm)所示“Complete!”表示安装成功。
        图5 nginx安装成功(rpm)
      • Ubuntu、Debian等支持deb安装软件的OS:

        执行命令pkg –l nginx,查看回显结果如图 nginx安装成功(deb)所示,表示安装成功。

        图6 nginx安装成功(deb)

  4. 配置Nginx

    1. 执行以下命令进入nginx目录。

      cd /etc/nginx/

    2. 执行以下命令完成证书自签。

      openssl req -new -x509 -nodes -out server.pem -keyout server.key -days 36500

      命令执行后需填写证书相关信息,自定义填写即可。

      图7 自签证书

      第一项Country Name受长度限制,只能填写两个字符。

    3. 执行以下操作修改nginx.conf。
      1. 依次执行以下命令修改nginx.conf。

        rm -f nginx.conf

        vi nginx.conf

      2. “i”键进入编辑模式,并将以下内容复制粘贴到nginx.conf中。
        user nginx;
        worker_processes auto;
        error_log /var/log/nginx/error.log;
        pid /run/nginx.pid;
        
        include /usr/share/nginx/modules/*.conf;
        
        events {
            worker_connections 1024;
        }
        
        http {
            log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" "$http_x_forwarded_for"';
        
            access_log  /var/log/nginx/access.log  main;
        
            sendfile            on;
            tcp_nopush          on;
            tcp_nodelay         on;
            keepalive_timeout   65;
            types_hash_max_size 2048;
        
            include             /etc/nginx/mime.types;
            default_type        application/octet-stream;
        
            # Load modular configuration files from the /etc/nginx/conf.d directory.
            # for more information.
            include /etc/nginx/conf.d/*.conf;
        
            upstream backend_hss {
                server ADDR:10180;
            }
        
            server {
                listen  10180;
        
                server_name  ADDR;
                root         /usr/share/nginx/html;
        
                # Load configuration files for the default server block.
                include /etc/nginx/default.d/*.conf;
        
                ssl    on;
                ssl_protocols   TLSv1.2;
                ssl_certificate "server.pem";
                ssl_certificate_key "server.key";
                ssl_session_cache shared:SSL:10m;
                ssl_session_timeout  10m;
                ssl_prefer_server_ciphers on;
        
                location / {
        
                    limit_except GET POST PUT
                    {
                        deny all;
                    }
                    proxy_set_header Host ADDR;
                    proxy_pass https://backend_hss;
        
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "upgrade";
        
               }
        
                error_page 404 /404.html;
                    location = /40x.html {
                }
        
                error_page 500 502 503 504 /50x.html;
                    location = /50x.html {
                }
            }
        }
      3. 可选:粘贴完成后,按Esc键,输入以下命令,按回车键退出,完成配置。

        :wq!

      4. 执行以下命令自动替换nginx.conf中的地址。

        sed -i "s#ADDR#`cat /usr/local/hostguard/conf/connect.conf | grep master_address | cut -d '=' -f 2 | cut -d ':' -f 1`#g" nginx.conf

    4. 执行以下操作,创建nginx的监控脚本。创建完成后,每分钟定时检测nginx运行状态
      1. 依次执行以下命令,创建nginx的监控脚本。

        echo '*/1 * * * * root sh /etc/nginx/nginx_monitor.sh' >> /etc/crontab

        vi /etc/nginx/nginx_monitor.sh

        图8 创建nginx监控脚本
      2. 将以下内容复制粘贴到nginx_monitor.sh中。
        #!/bin/bash
        counter=$(ps -C nginx --no-heading|wc -l)
        if [ "${counter}" = "0"  ]; then
             systemctl start nginx.service
        fi
        图9 配置nginx_monitor.sh
      3. 粘贴完成后,按Esc键,输入以下命令,按回车键退出,完成配置。

        :wq!

    5. 等待1分钟后,执行以下命令查看nginx进程是否已经启动。

      ps -ef | grep nginx

      界面回显如图 nginx进程启动成功所示,表示nginx进程已启动,继续执行通过代理服务器制作Agent安装包或安装命令

      图10 nginx进程启动成功