请告诉我如何将React SSR应用程序上传到托管?我一整天都在寻找正常的文章或说明,但在任何地方都找不到
我有主机和VPS,据我了解,你需要上传到VPS。我有 2 个包含项目构建的文件夹:客户端和服务器,在此之前我应该上传什么以及应该在服务器上安装什么?
我尝试安装 Node JS 并使用 .htaccess 将其上传到我的目录中的某个位置,但它没有导致任何结果
如果您不熟悉,将 React 服务器端渲染 (SSR) 应用程序部署到 VPS 可能会有点复杂。这是帮助您正确部署应用程序的分步指南。假设您可以通过 SSH 访问您的 VPS 并且它运行类 Unix 操作系统,您需要执行以下操作:
在上传并运行应用程序之前,您需要通过安装必要的软件来准备您的 VPS:
Node.js:如果尚未安装 Node.js,请安装它。您提到有 Node.js,但请确保它是适合您的应用程序的正确版本。使用 Node Version Manager (nvm) 更轻松地管理 Node.js 版本。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install node # installs the latest version of node
nvm use node
NPM/Yarn:确保您的包管理器(npm 或yarn)是最新的。
npm install -g npm
# or
npm install -g yarn
进程管理器:安装进程管理器以保持应用程序运行。 PM2 是 Node.js 应用程序的热门选择。
npm install pm2 -g
Web 服务器(可选但推荐):设置 Nginx 等反向代理可以帮助管理流量并提供更好的安全性和性能。
sudo apt update
sudo apt install nginx
您需要将客户端和服务器目录上传到您的 VPS。您可以使用 SCP(安全复制协议)、FTP 或您喜欢的任何其他方法来执行此操作。如果您具有 SSH 访问权限,则可以按以下方式使用 SCP:
scp -r path_to_your_client_folder user@your_vps_ip:/path_where_to_upload
scp -r path_to_your_server_folder user@your_vps_ip:/path_where_to_upload
导航到您上传文件的 VPS 上的项目目录。
安装依赖项:
cd /path_to_your_server_directory
npm install
# or
yarn install
构建您的应用程序(如果尚未构建):
npm run build
# This depends on how your package.json scripts are configured
使用PM2,您可以开始您的应用程序。您需要将 PM2 指向您的服务器端入口点脚本,通常类似于
server.js
:
pm2 start server.js --name "YourAppName"
pm2 save
pm2 startup
配置 Nginx 将请求转发到您的 Node.js 应用程序:
编辑Nginx配置文件:
sudo nano /etc/nginx/sites-available/default
在
http
块内添加以下服务器块:
server {
listen 80;
server_name your_domain_or_IP;
location / {
proxy_pass http://localhost:3000; # Make sure the port matches your app's port
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
重新启动 Nginx 以应用更改:
sudo systemctl restart nginx
确保您的防火墙配置为允许端口 80 (HTTP) 和 443(HTTPS,如果您使用 SSL)上的流量:
sudo ufw allow 'Nginx Full'
按照这些步骤,您的 React SSR 应用程序应该在您的 VPS 上启动并运行。确保检查您的应用程序日志是否有任何错误或问题:
pm2 logs YourAppName
如果您在执行这些步骤时遇到任何具体问题,请随时寻求帮助!