最近搞了一些应用,开放在不同的端口,刚开始直接用域名+端口的方式,但是由于主站开启了https,这样使用无法成功,最后使用了IP+端口这种原始的方法,但是这种方法有很大的缺点,每新增一个应用就要开放一个端口,这样子做在公网环境中不够安全,同时也不方便记忆。
最后我使用nginx的代理功能实现了不开放端口情况下,通过二级域名访问不同端口的应用。
操作如下:
①确定二级域名名称
②添加二级域名DNS解析记录。如果二级域名和主站都在同一台服务器上,可以直接设置解析*.xxx.com到主机IP地址,一劳永逸。如果不在同一台服务器上,则需要单独添加DNS解析记录。
③修改nginx设置,使其将二级域名反向代理到指定端口。
nginx的配置文件一般在/etc/nginx.conf,以abc.herek.asia为例,添加如下设置即可
server {
listen 80;
listen [::]:80;
server_name abc.herek.asia;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:12345;
}
}
④重启Nginx,使配置文件生效。
systemctl restart nginx