
# 为代理服务器安装配置nginx
nginx负责将第三方服务器的请求转发至HSS管理后台。
#### 为代理服务器安装配置nginx
1. 登录代理服务器
2. 检查yum源 
   检查yum源是否有nginx软件包，如果没有nginx软件包需完成[配置yum源](https://support.huaweicloud.com/usermanual-mirrors/mirrors_hlp_0003.html)，并临时绑定公网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包存在。
   图1nginx包存在（rpm）   
   ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001943316358.png)
   图2nginx包存在（deb）   
   ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001970434825.png)
   
   
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）   
      ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001943475670.png)
      图4安装nginx（apt）   
      ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001970554573.png) 
   
   2. 查看nginx是否安装成功。
      - EulerOS、CentOS、Red Hat等支持rpm安装软件的OS：
        自动执行安装，出现如[图 nginx安装成功（rpm）]所示"Complete!"表示安装成功。
        图5nginx安装成功（rpm）   
        ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001943316362.png) 
      
      - Ubuntu、Debian等支持deb安装软件的OS： 执行命令pkg –l nginx，查看回显结果如[图 nginx安装成功（deb）]所示，表示安装成功。
        图6nginx安装成功（deb）   
        ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001970434829.png) 
       
   
   
   
   
4. 配置Nginx 
   1. 执行以下命令进入nginx目录。 cd /etc/nginx/
      
   
   2. 执行以下命令完成证书自签。 openssl req -new -x509 -nodes -out server.pem -keyout server.key -days 36500
      命令执行后需填写证书相关信息，自定义填写即可。Country Name受长度限制，只能填写两个字符。
      图7自签证书   
      ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001943475674.png) 
   
   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监控脚本   
         ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001970554585.png) 
      
      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   
         ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001943316370.png) 
      
      3. 粘贴完成后，按Esc键，输入以下命令，按回车键退出，完成配置。 :wq!
         
       
   
   5. 等待1分钟后，执行以下命令查看nginx进程是否已经启动。 ps -ef | grep nginx
      界面回显如[图 nginx进程启动成功]所示，表示nginx进程已启动，继续执行[通过代理服务器制作Agent安装包或安装命令](https://support.huaweicloud.com/bestpractice-hss2.0/hss_06_0014.html)。
      图10nginx进程启动成功   
      ![](https://support.huaweicloud.com/bestpractice-hss2.0/zh-cn_image_0000001970434845.png) 
   
   
   
   
 
