当前位置: 首页 > >

CentOS利用nginx设置80、443端口转发(Port forwarding)

发布时间:

操作环境:


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)


?


?


?


?


?



友情链接: