Nginx之配置虚拟主机vhost

需求

  1. 当一台服务器上,需要使用nginx部署多套项目时,将所有项目配置在同一config 下,容易出现混乱,维护起来也比较困难。
  2. 部署多项目时,因为每个项目启动都会有不一样的端口号,客户端请求的时候需要带相应端口号,麻烦且没有必要。

解决

  1. 配置混乱问题,可以在主配置文件内引入其他的配置文件包,来解耦合。
  2. 客户端带端口问题,可以在反向代理服务器(nginx)中根据请求路由做一次内部转发。

架构设计理解

amazing
nginx反向代理架构图

规划

服务器

Centos: 7.9.2009 (Core)
Windows:10

域名及服务

服务

前端web服务: a-resource.top 和 b-resource.top 192.168.71.189
后端http服务: api.top 192.168.71.58
后端websocket服务: websocket.top 192.168.71.182
Nginx服务: all 192.168.71.189
域名解析服务: a-resource.top b-resource.top api.top websocket.top 都解析到 192.168.71.189

配置

每个项目拆分为一个独立conf,然后在主配置文件中 include 集成进来

  1. 主配置文件 nginx.conf
    nginx.conf

  2. 在nginx安装目录下 …/conf下,新建vhosts目录,与nginx.conf同级目录

vhosts

  1. 在vhosts 创建单独多个 *.conf 的文件,如api.top.conf,命名规则自己定,此处以域名做区分

注意每个分离conf中的listen不要相同,不允许冲突
sperate-conf

  • api.top.conf
    api.top.conf

  • a-resource.top.conf
    a-resource.top

  • b.resource.top.conf
    b-resource.top

  • websocket.top.conf
    websocket.top

  1. 在反向代理服务器(nginx)中做一次内部转发,用于反向代理服务器对外统一监听在80端口,对内(上游 upstream)根据请求路由(URI路径)做区分转发
    default.conf

  2. 域名解析服务

将 Windows10 当做域名服务,在 C:\Windows\System32\drivers\etc\hosts中配置

192.168.71.189  api.top
192.168.71.189  a-resource.top
192.168.71.189  websocket.top
192.168.71.189  b-resource.top
  1. 客户端

在Windows10中当做客户端去访问服务

1. curl http://a-resource.top/a-static/my2.html
hello my static resource-a page2

2. curl http://b-resource.top/b-static/my2.html
hello my static resource-b page2

3. curl http://api.top/a-api/v7/game/gameSurface/recGame
{
	"flag": 0,
	"code": "500",
	"message": "网络异常,请稍后再试"
}
4.使用在线websocket测试工具(http://coolaf.com/tool/chattest)

[root@localhost ~]# /root/node_modules/wscat/bin/wscat -c ws://websocket.top/a-websocket/
  Connected (press CTRL+C to quit)
  > hello world
  < Server received from client: hello world

问题

  • curl访问正常,浏览器却无法访问
1、考虑防火墙的问题;
2、看是不是开启了VPN代理,关掉

参考资料

nginx下搭建websocket服务
nginx反向代理WebSocket

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值