You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular Universal项目部署至OVH应上传server还是browser文件夹?

Angular Universal SSR 部署到OVH的正确操作方案

1. 产品适配性确认

  • 若使用OVH共享虚拟主机:需先确认套餐支持Node.js运行环境,低阶共享主机默认仅支持静态资源/PHP,无法运行Node服务端进程,需升级到支持Node的托管套餐或改用OVH VPS/云服务器产品
  • 若使用OVH VPS/云服务器:提前在服务器内安装与本地开发环境大版本一致的Node.js环境即可

2. 构建产物上传规则

将本地完整dist文件夹上传到OVH主机的指定工作目录(VPS建议放在/var/www/你的项目名路径下,不要直接放到默认公开Web根目录),上传后目录结构需和本地保持一致:

项目工作目录
└── dist
    ├── browser # 前端静态资源目录
    └── server
        └── main.js # SSR服务端入口文件

3. 启动SSR服务并配置进程守护

Angular Universal SSR依赖Node服务端进程运行,不能直接作为静态资源解析:

  1. 进入上传后dist/server所在的父级目录,执行node dist/server/main.js测试服务是否正常启动,默认监听4000端口,可通过curl http://127.0.0.1:4000测试返回内容是否包含SSR渲染的完整页面源码
  2. 安装pm2实现进程守护,避免服务异常中断:
    • 全局安装pm2:npm install pm2 -g
    • 启动SSR服务:pm2 start dist/server/main.js --name 自定义项目标识名
    • 设置pm2开机自启:pm2 startup && pm2 save

4. 配置反向代理(必要步骤)

你之前访问域名出现目录列表、文件下载提示,是因为没有将域名请求转发到Node SSR服务端口,需按托管类型配置:

  • 若使用OVH官方Node.js托管服务:在后台托管配置页,将应用入口文件指定为dist/server/main.js,静态资源目录指定为dist/browser即可
  • 若使用VPS自行搭建的Nginx/Apache环境:新增站点配置,静态资源请求直接指向dist/browser目录下的对应文件,动态请求全部代理转发到SSR服务监听的端口

Nginx 配置参考片段:

server {
  listen 80;
  server_name 你的实际域名;

  root /var/www/你的项目名/dist/browser;
  index index.html;

  # 静态资源直接读取本地文件
  location / {
    try_files $uri $uri @ssr;
  }

  # 非静态资源转发到SSR服务
  location @ssr {
    proxy_pass http://127.0.0.1:4000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

5. 效果验证

配置完成后重启反向代理服务与SSR进程,访问域名查看页面源码,若能看到完整的页面DOM内容而非空的根节点占位符,即说明SSR部署生效。

内容的提问来源于stack exchange,提问作者Yx-h

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:39:03