零基础用户咨询:Windows主机搭建多站点与URL关联实现方法
零基础搭建Windows多站点主机实操指南
嗨,我来一步步帮你理清楚怎么在Windows主机上跑起你的两个自研网站,还能把多个URL分别关联过去——完全不用WordPress这类工具,用你已经知道的node server.js为基础,搞定整个流程!
一、先搞定服务器程序的基础运行(以Node.js为例)
既然你已经知道node server.js,那咱们先从最基础的本地/云主机运行开始:
- 第一步:先确保你的Windows主机(不管是自己的电脑还是云服务器)上装了Node.js——云主机的话远程登录后,去Node.js官网下对应Windows版本安装就行,本地测试的话自己电脑直接装。
- 第二步:把两个网站的代码分开存,比如一个放
C:\MySites\Site1,另一个放C:\MySites\Site2,每个文件夹里都有自己的server.js(或者你的项目入口文件)。 - 第三步:给两个站点设置不同的端口!比如Site1用
3000,Site2用3001——如果是用Express框架,就在各自的server.js里改app.listen(3000, ...)和app.listen(3001, ...),其他框架同理,找端口配置的地方改。 - 第四步:测试本地运行:开两个命令提示符(CMD),分别进到两个站点的文件夹,各自运行
node server.js,然后在浏览器输localhost:3000和localhost:3001,确认两个站点都能正常打开,这一步没问题再往下走。
二、关联多个URL(域名)到不同站点
这里分本地测试练手和线上云主机正式配置两种情况,先从免费的本地测试开始:
1. 本地环境测试域名关联(不用花钱,先练手)
直接用端口访问太麻烦,咱们用自定义域名来访问:
- 首先修改Windows的
hosts文件:路径是C:\Windows\System32\drivers\etc\hosts,右键用管理员权限打开记事本(普通权限改不了),在文件末尾加两行:
这里的127.0.0.1 site1.test 127.0.0.1 site2.testsite1.test和site2.test可以换成你想测试的任意域名,比如my-first-site.com都行,只是本地用的话不用真的注册。 - 接下来需要反向代理工具,因为浏览器访问域名默认走80端口,咱们要把不同的域名转发到对应的Node.js端口。推荐用Nginx的Windows版本,操作简单:
- 下载Nginx Windows版,解压到比如
C:\nginx; - 打开
C:\nginx\conf\nginx.conf,找到原来的server块,替换成下面两个配置:server { listen 80; server_name site1.test; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } server { listen 80; server_name site2.test; location / { proxy_pass http://localhost:3001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } - 保存配置后,打开CMD进到Nginx文件夹,运行
start nginx启动服务; - 现在在浏览器输
site1.test就能访问你的第一个站点,输site2.test就能访问第二个,完美!
- 下载Nginx Windows版,解压到比如
2. 线上Windows云主机的正式配置
如果是买的云Windows主机(比如阿里云、腾讯云的),步骤如下:
- 第一步:先搞定域名备案(国内主机必须,国外主机不用),然后去你的域名服务商后台,把两个域名都解析到云主机的公网IP——一般是加A记录,主机记录填
@或者你要的子域名,值填云主机IP。 - 第二步:选反向代理工具,推荐用Windows自带的IIS(更贴合系统),或者继续用Nginx:
- 用IIS的话:
- 打开服务器管理器,添加IIS角色(记得勾选“Web服务器”下“应用程序开发”里的Node.js模块,或者你自己先装好Node.js);
- 打开IIS管理器,右键“网站”>“添加网站”:填网站名称,物理路径选你的Site1文件夹,绑定里选“http”,IP地址选云主机的公网IP,端口80,主机名填你的第一个域名;
- 重复上面的步骤添加第二个网站,主机名填第二个域名;
- 给每个网站配置Node.js应用:在每个网站的功能视图里找到“Node.js”,设置入口文件为
server.js,IIS会自动帮你做反向代理,不用手动改端口。
- 用Nginx的话和本地配置差不多,只是把
proxy_pass里的localhost换成127.0.0.1,然后要确保云主机的安全组开放80端口(如果用HTTPS还要开443)。
- 用IIS的话:
- 第三步:测试访问,直接在浏览器输你的两个域名,确认都能正常打开对应的站点。
三、必看的额外小技巧
- 让Node.js服务后台运行:如果直接用CMD运行
node server.js,关了CMD服务就停了。可以用pm2(Node.js的进程管理工具),安装命令是npm install pm2 -g,然后在每个站点文件夹运行pm2 start server.js --name site1,这样服务会一直在后台跑,重启主机后还能自动启动(用pm2 startup设置开机自启就行)。 - 防火墙设置:Windows自带防火墙,要确保80端口(还有如果直接访问Node.js端口的话3000、3001)允许入站连接,不然外部访问不了。
- 加HTTPS证书:现在网站都推荐用HTTPS,你可以在IIS里申请免费的Let's Encrypt证书,或者在域名服务商那里买证书,然后给每个网站绑定443端口,配置好证书就行。
内容的提问来源于stack exchange,提问作者Barnack
相关产品推荐
相关产品推荐

