Nginx代理隧道端口

# 建立隧道把对本地20001端口的访问通过host-a转发到127.0.0.1(即host-a)的443端口,如果127.0.0.1是别的地址,就是转发到host-a可以访问的另外一台主机
ssh -f -N -L 20001:127.0.0.1:443 root@host-a
如果需要绑定本机的特定IP,可以前面再加,0.0.0.0表示所有IP,也可以只写本机的某个IP
ssh -f -N -L 0.0.0.0:20001:127.0.0.1:443 root@host-a
接上述配置,当希望把本机的20001端口作为nginx的upstream发布为http/https服务时,报错502 bad gateway。查看nginx日志发现异常:
2024/12/24 17:30:17 [crit] 8786#8786: *20 connect() to 192.168.4.33:20001 failed (13: Permission denied) while connecting to upstream
经查询,是防火墙拦截了nginx的访问,加上相应的策略即可:
sestatus # 查询防火墙是否开启:1开启,0未开启
audit2allow -w -a  # 查看 SELinux 警告
audit2allow -M nginx_custom_policy -a  # 生成自定义的策略
semodule -i nginx_custom_policy.pp  # 安装该策略