React ssr 项目部署

891 阅读2分钟
  • 项目开发已经完成,需要部署到服务器了,,,像普通的React项目打包之后会生成一个build文件,nginx做常规配置即可,但是React ssr.打包完成之后生成的文件跟普通的不一样.我这边写一下我自己部署的操作步骤哦!给大家作为参考.我这边主要贴上nginx的配置.

  • 查了挺多资料的,都是需要依赖nogdejs,,所以我怀疑这种ssr的项目不能做常规的nginx配置,以下是我的操作步骤:

安装nodejs

这个大家可以自行百度哦,我也有写这个操作步骤,大家也可以参考[我写的操作步骤](https://juejin.cn/post/7041095026427822117)哦

安装 nginx

这个操作步骤大家可以百度哦,我看着很多小伙伴的操作步骤写的很详细,我就不在贴步骤啦

发布项目源码包

我这边的源码结构如下:
  1.     assets 
    
  2.     components
    
  3.     pages
    
  4.     public
    
  5.     services
    
  6.     styles
    
  7.     utils
    
  8.     next.config.js
    
  9.     package.json
    
  10.     server.js
    

然后执行npm run build 之后,会生成一个 .next 文件,,,但是也是可以在next.config.js里面另外指定生成的文件包的:

module.exports = { distDir: 'build' }

这样指定一下只是为了方便看,,其实可以不用这么指定的,,,

现在开始上传代码包,比如代码需要传到服务器的/root/website,可以选择ftp上传文件,也可以使用linux的上传命令哦,这个我也有在前面的文章写操作步骤,大家可以参考哦

配置nginx.conf

### 这些是nginx默认的
worker_processes  1;
events {
    worker_connections  1024;
}

### 这里不用配置 index.html 的目录 和指定root目录哦
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;


    server {
	   listen  80;
        access_log      /usr/local/nginx/logs/access.log;
        error_log       /usr/local/nginx/logs/error.log;
        server_name 0.0.0.0;    // 这个是服务器的IP地址哦 
        
        # 主要是这里的哦,proxy_pass代理到项目启动的地址,项目启动的地址一般会有两个,一个是
        # http://ip:端口号,
        # 另一个是:localhost:端口号
        # 把localhost替换成127.0.0.1:端口号
       location / {
                proxy_pass http://127.0.0.1:8081;   // 这个地址不变的哦,端口要要跟nodejs启动时的一致哦
                proxy_connect_timeout 300;
                proxy_read_timeout 300;
                proxy_send_timeout 300;
        }      

        location /web/file {
                proxy_pass http://abcd.com/static/;
                proxy_connect_timeout 300;
                proxy_read_timeout 300;
                proxy_send_timeout 300;
        }
        

        location /api {
                proxy_pass http://abcd.com/api;
         }
          
      }
}


配置好之后启动nginx哦

安装nodejs的进程守护

以上操作步骤完成之后,安装pm2,,,大家可以自行百度pm2的相关资料哦,,我这边贴我的操作步骤.

  1. npm install pm2 -g # 安装
  2. pm2 stop all # 停止PM2列表中所有的进程
  3. pm2 stop 0 # 停止PM2列表中进程为0的进程

安装好之后,回到项目目录,执行

pm2 start npm -- run build

这样就把这个进程保持住了哦!!!!!

哦耶,完成~~~~~~~~~~~~~~ 感觉写的有点白话文,,欢迎小伙伴批评指正哦,