一台服务器部署多个项目端口问题,我的解决方案

最近,刚开发完两个项目,由于现阶段预测访问量不是很大,因此就把这两个项目打算部署到同一台服务器上面,这个时候就会面临一个问题,大家都知道http协议默认端口是80,因此咱们再访问网站的时候才无需输入“域名 + 端口”的形式,只需要输入域名就可以了(像这样http://www.wyunfei.com/),但是80端口只有一个,但是两个站点那是不是得有一个站点在用户访问的时候得以“域名 + 端口”的形式呢?NO!!!我们当然要让用户优雅进行访问,那该怎么办呢?

问题一,如果你两个项目都要部署在IIS下面

第一个项目 http://www.wyunfei.com

  1. 网站 -> 右键 -> 添加网站(如下图)


    IIS添加网站
  2. 在如下中依次填写上:网站名称、物理路径(项目路径)、绑定(默认就行)、主机名(域名)


    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/试试~~哈哈~牛批~~

你可能感兴趣的:(一台服务器部署多个项目端口问题,我的解决方案)