CentOS利用nginx设置80、443端口转发(Port forwarding)
程序员文章站
2022-05-27 23:44:11
...
操作环境:
CentOS7、nginx1.11.6、tomcat
问题描述:
项目基于tomcat开放的8088端口,为避免访问时输入8088端口号的麻烦,需要将直接通过域名(80、443端口)的访问转发至8088端口。
解决途径:
利用nginx的端口转发功能,将对80、443端口的访问转发至8088端口。
需要改动nginx配置文件nginx.conf中的server段。
下面以80端口转发8088为例,443端口以此类推,location段内为转发功能的实现。
server {
listen 80;
server_name www.xxx.com; # 多个域名可用空格隔开
location / {
proxy_pass http://127.0.0.1:8088; # 转发至8088端口,关键部分
# 相关配置,可省略
proxy_read_timeout 600s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port; # 配置后不会丢失端口
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
小结:
我在实现端口转发时碰到了转发失败的情况,原因是443端口未打开,而每次通过域名访问都会自动以https的方式访问,导致一直转发失败,在小问题上浪费了不少时间,因此总结了一些查错的步骤以供再次碰到时参考。
1.服务器
(1)服务器是否正常工作
(2)监听的端口(如80、443)及转发的端口(如8088)是否全部打开
(3)防火墙开启与否,开启则相应端口是否在白名单
2.域名
(1)域名是否备案(否则80端口将被屏蔽)、到期
3.软件
(1)项目及软件是否配置正确(即域名+端口号是否能访问想要转发的项目,能访问则配置正确)
(2)相应端口号是否已被占用or冲突
(3)nginx权限是否够(nginx.conf中user句,后面可尝试先改为root,看是否能访问,能访问则后续创建所需要的权限的新用户,最好不要一直设为root)
上一篇: windows 如何实现端口转发
下一篇: ssh 端口转发