为代理服务器安装配置nginx
nginx负责将第三方服务器的请求转发至HSS后台管理后台。
为代理服务器安装配置nginx
- 登录代理服务器
- 检查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
- 执行以下命令使用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)
- 查看nginx是否安装成功。
- EulerOS、CentOS、Red Hat等支持rpm安装软件的OS:
- Ubuntu、Debian等支持deb安装软件的OS:
执行命令pkg –l nginx,查看回显结果如图 nginx安装成功(deb)所示,表示安装成功。
- 执行以下命令使用yum安装nginx。
- 配置Nginx
- 执行以下命令进入nginx目录。
- 执行以下命令完成证书自签。
openssl req -new -x509 -nodes -out server.pem -keyout server.key -days 36500
命令执行后需填写证书相关信息,自定义填写即可。
图7 自签证书
第一项Country Name受长度限制,只能填写两个字符。
- 执行以下操作修改nginx.conf。
- 依次执行以下命令修改nginx.conf。
vi nginx.conf
- 按“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 { } } }
- 可选:粘贴完成后,按Esc键,输入以下命令,按回车键退出,完成配置。
- 执行以下命令自动替换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
- 依次执行以下命令修改nginx.conf。
- 执行以下操作,创建nginx的监控脚本。创建完成后,每分钟定时检测nginx运行状态
- 依次执行以下命令,创建nginx的监控脚本。
echo '*/1 * * * * root sh /etc/nginx/nginx_monitor.sh' >> /etc/crontab
vi /etc/nginx/nginx_monitor.sh
图8 创建nginx监控脚本
- 将以下内容复制粘贴到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
- 粘贴完成后,按Esc键,输入以下命令,按回车键退出,完成配置。
- 依次执行以下命令,创建nginx的监控脚本。
- 等待1分钟后,执行以下命令查看nginx进程是否已经启动。
界面回显如图 nginx进程启动成功所示,表示nginx进程已启动,继续执行通过代理服务器制作Agent安装包或安装命令。