设置反向代理
使用Nginx,配置用域名进行访问,需使用websocket连接。
由于部署在公司内网,我这里使用了二层Nginx,第一层是在一台具有公网IP的ECS,第二层是一台路由器上转发到内网443端口上的虚拟机:
第一层Nginx上站点子配置:
# Nginx Second Configure File.
upstream Inc_nginx_tls {
server company_public_ip:53763;
}
server {
listen 80;
listen 443 ssl;
server_name ~^(imc|up)\.example\.com$;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
access_log logs/imc_access.log;
error_log logs/imc_error.log;
location / {
proxy_pass https://Inc_nginx_tls;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Nginx-Proxy true;
}
include vhosts/cert.bot;
}
我这里写的正则,监听处理imc和up两个域名地址。
第二层Nginx上为能够正确获取浏览器客户端访问的正确IP地址,需在主配置文件中添加从包头中获取真实IP地址:
http {
...
set_real_ip_from ecs_public_ip;
real_ip_header X-Forwarded-For;
include vhosts/*.conf;
}
站点子配置文件:
# Nginx Second Configure File.
# Uptime-kuma
upstream uptime {
# 接口
server 192.168.2.6:3001;
}
server {
listen 80;
listen 443 ssl;
server_name up.example.com;
ssl_certificate certs/chat-imc.crt;
ssl_certificate_key certs/chat-imc.key;
access_log logs/up_access.log;
error_log logs/up_error.log ;
# No Robots
location = /robots.txt {
return 200 "User-agent: *\nDisallow: /";
}
location / {
proxy_pass http://uptime/;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Nginx-Proxy true;
}
}
配置好后访问即可:
后记
此工具主要实现的是站点/地址的网络连通状态的监控,并提供一个美观直接的结果展示页面,如果要监控更为详细的数据,还需使用其它工具。
