最近,刚开发完两个项目,由于现阶段预测访问量不是很大,因此就把这两个项目打算部署到同一台服务器上面,这个时候就会面临一个问题,大家都知道http协议默认端口是80,因此咱们再访问网站的时候才无需输入“域名 + 端口”的形式,只需要输入域名就可以了(像这样http://www.wyunfei.com/),但是80端口只有一个,但是两个站点那是不是得有一个站点在用户访问的时候得以“域名 + 端口”的形式呢?NO!!!我们当然要让用户优雅进行访问,那该怎么办呢?
问题一,如果你两个项目都要部署在IIS下面
第一个项目 http://www.wyunfei.com
-
网站 -> 右键 -> 添加网站(如下图)
IIS添加网站
-
在如下中依次填写上:网站名称、物理路径(项目路径)、绑定(默认就行)、主机名(域名)
IIS添加网站配置
通过绑定的主机名http://www.wyunfei.com访问试试可不可以,不可以联系我,见下面二维码,哈哈哈
第二个项目 http://m.wyunfei.com/
和上面操作步骤一样,唯一差别就是“主机名”换一下,换成你的子域名或其它域名,只要指向这台服务器就可以,注意端口都可以使用“80”,因为是通过主机名进行区分的,访问http://m.wyunfei.com/试试吧,有问题找我事儿...
问题二,如果一个项目是node服务器,另一个放在IIS服务器
第一个项目IIS
按照“问题一”的方式进行配置就可以了,唯一修改的地方就是可以把端口改为非80,比如我改为了8081,这个时候要想成功访问,那么我们需要这么写域名 + 端口(http://www/wyunfei.com:8081/),才能够正常访问,但是显然不是我们想要的结果。
咱们来屡屡思路:
我们要让用户访问的是http://www.wyunfei.com/,但是显然通过http://www.wyunfei.com/,无法定位到咱们的项目程序,还需要添加端口才能准确定位到具体的项目,这个时候咱们可不可以这么考虑,我让用户依旧访问http://www.wyunfei.com/,然后通过反向代理的方式,转到http://www.wyunfei.com:8081/,这样的话用户既可以只需要在浏览器输入域名,又可以准确定位到具体的项目。
问题又来了,什么是反向代理?这个大家可以自行解决,网上有很多我就不班门弄斧了,直接教大家使用。
Nginx
- 下载、安装
打开官网,直接下载压缩包,我用的版本是| 2018年12月4日 发布的稳定版
nginx-1.14.2 -
解压、使用
解压后会看到,如下图
Nginx.png
- 配置
在刚解压的nginx目录下,找到conf/nginx.conf这个文件,在这个文件里,做如下配置:
server {
listen 80; # 监听端口
server_name www.wyunfei.com; # 浏览器访问地址
location / {
root html; # 文件类型
proxy_pass http://www.wyunfei.com:8081/; # 要展示的项目
}
}
- Nginx常用命令
nginx -t - 是否正确安装
nginx -v - 版本号
start nginx - 启动
nginx -s stop - 快速停止或关闭
nginx -s quit - 正常停止或关闭
nginx -s reload - 配置文件修改重新装载命令
注意:修改了配置文件,一定要记得执行重启或停止再启动命令,关闭小黑窗不代表停止或关闭。
访问http://www.wyunfei.com/试试,不行再找我事儿~~~哈哈哈
第二个项目NodeJS项目
- 通过webpack或gulp等工具打包过的(推荐打包压缩),按照问题一都放在IIS就可以了
- 未打包的情况略有差别(不推荐源代码运行)
在NodeJS的入口文件中,配置如下:
NodeJS入口文件
监听端口改为8082,就可以了,接下来就是Nginx下的配置,如下图
server {
listen 80; # 监听端口
server_name www.wyunfei.com; # 浏览器访问地址
location / {
root html; # 文件类型
proxy_pass http://www.wyunfei.com:8081/; # 要展示的项目
}
}
server {
listen 80; # 监听端口
server_name m.wyunfei.com; # 浏览器访问地址
location / {
root html; # 文件类型
proxy_pass http://www.wyunfei.com:8082/; # 要展示的项目
}
}
访问http://m.wyunfei.com/试试~~哈哈~牛批~~
网友评论