项目演示地址:https://m.axiaoke.cn
第一部分:准备事项(ECS服务器和域名需要购买,这也是唯一的支出成本)
1. 云服务准备
-
- 注册阿里云账号
- 服务器购买
- 在上方推荐购买页面,个人用户首次可以以99元/台/年的价格购买到一台ECS服务器,企业认证的用户可以以199元/台/年买到一台ECS服务器
- 选择windows2019(推荐):
- 镜像:Windows Server 2019 ,后续也可以在实例列表中点击:“全部操作”-“更换操作系统”,甚至可以更换成镜像市场中自带宝塔面板的Windows Server 2019(省去了部署网站基本运行环境的力气)
- 安全组至少开放端口:80、443、3000
- 域名购买
- 在阿里云域名注册页面搜索可用域名比如
yourdomain.com
- 购买后完成域名实名认证(需1-3个工作日审核)
- 在阿里云域名注册页面搜索可用域名比如
- 邮件推送服务配置
- 进入 邮件推送控制台
- 创建发信域名
yourdomain.com
并完成 DNS 验证
- 新建发信地址,选择“批量邮件”
- 注1:我们目前是用的SingleSendMail API 接口发信,因此暂不需要提交模板审核
- 注2:正式环境调试通过后,可以在“IP防护”中勾选【】 ,并将自己服务器的IP地址添加到白名单
- 注3:阿里云的邮件推送会有免费的邮件额度,如果只是用于自己家点餐,完全足够了
- AccessKey配置
- 登录 RAM 控制台 → 用户 → 创建用户
- 勾选 "使用永久 AccessKey 访问"
- 添加权限策略
AliyunDirectMailFullAccess【管理邮件推送(DirectMail)的权限】
- 最后在此用户的【认证管理】界面,点击蓝色的:“创建AccessKey ”按钮,在弹出界面中,选择:其他-其他必须使用 AccessKey 的场景。最后勾选:我确认必须创建 AccessKey,并点击:继续创建。后续记得将ID、SECRET保存下来。
- 注:正式环境调试通过后,可以在此界面,AccessKey ID的后方,点击:“网络访问限制策略”,添加自己的服务器公网IP地址,确保AccessKey 的相对安全性。
2. 本地文件准备
C:\wwwroot\diancan\ ├─ index.html ├─ styles.css ├─ pinyin-pro.js(新增的拼音检索支持库) └─ script.js
后端文件:
C:\wwwroot\server\ └─ server.js
说明:源码中有一些信息需要自己修改:
1、diancan目录下的index.html文件,(1)头部信息,比如标题等,(2)logo地址,(3)</head>标签上方的百度统计代码
2、diancan目录下的image文件夹,自己调整logo,主要是favicon.ico图标和从外部链接分享到微信时的富文本等
3、server目录下的server.js文件【这个建议改掉】:
(1)第21行的网址
(2)第42行、52行的两个数字确认码,以及对应的邮件标题、内容
(3)第78行的发件人邮件地址,填写阿里云邮件推送中设置好的
(4)第81行的收件人邮件地址,固定收件人,请修改为自己的收件邮箱
第二部分:服务器环境部署1(IIS)
1.可以通过PowerShell快速安装
- 以管理员身份运行PowerShell
右键点击开始菜单,选择 “Windows PowerShell (管理员)”。 - 执行安装命令
<span class="token function">Install-WindowsFeature</span> <span class="token operator">-</span>Name Web-Server <span class="token operator">-</span>IncludeManagementTools
Web-Server
:安装IIS核心服务。-IncludeManagementTools
:包含IIS管理控制台。
- 验证安装
安装完成后,执行以下命令检查状态:<span class="token function">Get-WindowsFeature</span> Web-Server
若显示“Installed”表示成功。
在已安装IIS 10的基础上,部署URL重写模块和ARR 3.0(应用程序请求路由),可通过以下步骤快速实现(必须先装URL重写):
2. 安装URL重写模块(URL Rewrite)
方法一:通过Web平台安装程序(WebPI)
- 手动下载安装包
官方直链(微软下载中心):
URL Rewrite 2.1- 点击页面的 Download 按钮,选择
rewrite_amd64_en-US.msi
下载。
- 点击页面的 Download 按钮,选择
- 静默安装(PowerShell)
以管理员身份运行PowerShell,执行:msiexec <span class="token operator">/</span>i <span class="token string">"C:\路径\rewrite_amd64_en-US.msi"</span> <span class="token operator">/</span>quiet <span class="token operator">/</span>norestart
替换
C:\路径\
为实际下载路径。
3. 安装ARR 3.0(Application Request Routing)
- 直接下载ARR 3.0
官方直链:
ARR 3.0- 下载
ARRv3_setup_amd64_en-US.msi
。
- 下载
- 静默安装(PowerShell)
msiexec <span class="token operator">/</span>i <span class="token string">"C:\路径\ARRv3_setup_amd64_en_US.msi"</span> <span class="token operator">/</span>quiet <span class="token operator">/</span>norestart
- 手动下载安装包
验证IIS是否运行
- 本地访问测试
在服务器浏览器中输入http://localhost
,若看到IIS默认页面即表示成功。 - 外网访问测试
- 确保ECS实例的安全组放行了80端口(HTTP)和443端口(HTTPS)。
- 通过浏览器访问服务器的公网IP(如
http://<你的ECS公网IP>
),应显示IIS欢迎页。
第三部分:服务器环境部署2(其他)
1. 目录结构搭建
C:\wwwroot C:\wwwroot\diancan C:\wwwroot\server C:\wwwroot\nssm
2. 安装必要软件
- Node.js 环境
- 下载 Node.js LTS Windows 版
- 双击安装包,选择默认路径
C:\Program Files\nodejs\
- 验证安装:
node -v npm -v
- NSSM 服务管理工具
- 访问 nssm.cc → 下载最新 release 版
- 解压
nssm-2.24.zip
到C:\wwwroot\nssm\
- 添加系统环境变量:
- 变量名:
NSSM_HOME
- 变量值:
C:\wwwroot\nssm\或者
C:\wwwroot\nssm\win64
- 变量名:
3. 后端服务配置
-
- 安装依赖
cd C:\wwwroot\server npm init -y npm install express cors @alicloud/pop-core
如果后续安装mysql数据库及更高级的功能,也可以用这个: npm install express mysql2 body-parser cors bcryptjs jsonwebtoken @alicloud/pop-core
- 配置环境变量
- 在服务器桌面的 “此电脑”右键,然后选择:属性 → 高级设置 → 环境变量 → 系统变量
- 新建变量:
变量名: ACCESS_KEY_ID 变量值: 你的RAM用户AccessKey ID
变量名: ACCESS_KEY_SECRET 变量值: 你的RAM用户AccessKey Secret
变量名: GUEST_CODE 变量值: 客人的点餐确认码,比如666
变量名: WIFE_CODE 变量值: 老婆的点餐确认码,自行输入
- 安装依赖
第四部分:IIS 反向代理配置
- 新建网站
- 网站名称:
Diancan
- 物理路径:
C:\wwwroot\diancan
- 绑定:
yourdomain.com
(80端口)
- 网站名称:
- 反向代理规则
-
步骤 1:启用 ARR 代理功能
- 打开 IIS 管理器
- 在左侧连接树中选择 服务器节点(非具体网站)
- 双击 Application Request Routing Cache
- 右侧操作栏点击 Server Proxy Settings
- 勾选 Enable proxy → 点击 Apply
-
步骤 2:进入 URL 重写模块
- 打开 IIS 管理器
- 左侧连接树中选择目标网站(如
Diancan
) - 双击 URL 重写 模块
- 创建空白入站规则,右侧操作栏点击:添加规则,选择 空白规则 → 开始手动配置
- 基本规则配置
-
配置项 值/操作 规则名称 输入 3000
(标识端口)请求的 URL 选择: 与模式匹配
模式 输入 (.*)
(匹配所有路径)忽略大小写 勾选 - 操作类型:选择
重写
- 重写 URL:输入
http://localhost:3000/{R:1}
({R:1}
表示捕获组,保留原始请求路径) - 附加查询字符串:勾选(保留 URL 参数)
- 停止处理后续规则:勾选(提升性能)
- 如下图:
rewrite.config代码如下:
<rule name="3000" stopProcessing="true"> <match url="(.*)"/> <action type="Rewrite" url="http://localhost:3000/{R:1}"/> </rule>
步骤3:创建 Windows 服务
-
cd C:\wwwroot\nssm\ nssm install MailService
在 Nssm软件的GUI 界面按如下内容配置:
1、Path选择: C:\Program Files\nodejs\node.exe【必须是Node.exe文件所在的路径】 2、Startup directory: C:\wwwroot\server 3、Arguments: server.js
配置完毕后,可以直接搜索windows:“服务”,直接找到新创建的MailService服务,双击打开后点击:“启动”即可。
-
- HTTPS 强制跳转【根据需要设置】
- 申请免费 SSL 证书(阿里云 SSL 证书服务)
- 添加 HTTPS 绑定(443端口)
- 添加 URL 重写规则,如下图:
rewrite.config代码如下:
<rule name="http_toHttps" stopProcessing="true"> <match url="(.*)"/> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true"/> </conditions> <action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}"/> </rule>
第五部分:系统验证
1. 服务状态检查
netstat -ano | findstr :3000 # 确认端口监听 nssm status MailService # 查看服务运行状态
2. 功能测试
- 前端访问测试
- 浏览器打开
http://yourdomain.com或https://yourdomain.com
- 检查页面元素加载是否正常
- 浏览器打开
- 订单提交测试
- 选择菜品 →下一步→ 输入确认码 → 确认下单
- 邮件接收验证
- 登录 收件邮箱 查收邮件。
- 检查是否收到订单邮件
技巧,如果发现哪里问题不对,可以把问题和这篇文章直接复制发给AI让AI帮忙找问题在哪一步,如何调试。