构建好的 react 应用,可以部署到生产环境上运行,这个生产环境可以在自有服务器上搭建,也可以是第三方提供的服务。下面我要在自己的一台服务器上部署一下这个 react 应用。
首先可以配置一个域名,让它指向服务器的 IP 地址, ninghao.co 是我的域名,我配置了一条解析记录,让 ninghao-react.ninghao.co 这个域名指向我要部署 react 应用的服务器的 IP 地址。
配置 nginx 服务器
在终端,用 ssh 登录到我的服务器,确定在服务器上已经安装了 nginx 这个 web 服务器,之前我已经安装并且启动了 nginx 服务器。
进入到 nginx 配置文件目录,/etc/nginx/conf.d ,新建一个配置文件,用 vi 命令创建一个文件,名字是 ninghao-react.ninghao.co.conf ,按一下小 i 进入编辑模式。然后在这个文件里添加一个 server 区块定义一个服务器,这个 web 服务器 listen 的端口是 80,再用 server_name 指令设置一下服务器名,这里就是之前我配置好的一个域名,ninghao-react.ninghao.co。
然后用 root 设置一下服务器的根目录,设置成 /mnt/ninghao-react/build,一会儿我们要把在本地构建好的 react 应用上传到这里指向的位置上。再用 index 指令设置一下默认打开的文件,设置成 index.html。下面再用一个 try_files 指令,把它的值设置成 $uri $uri/ /index.html。
编辑完成以后按一下 esc,输入 :wq ,表示保存并退出,按一下回车执行一下。进入到 /mnt 这个目录,在这个目录的下面新建一个目录,执行 mkdir 新建目录,加上一个 -p 选项,要创建的目录是 ninghao-react/build ,因为这里用了这个 p 选项,所以会先创建一个 ninghao-react,然后在它里面又会创建一个 build 目录。
让新做的 nginx 配置生效,需要重载 nginx,执行 systemctl reload nginx。
上传文件
再回到本地,我们可以把 build 生成的 react 应用上传到服务器指定的位置上。可以使用 scp 这个命令,加上 -r 这个选项,上传的是当前目录下的 build 这个目录,它里面包含的就是构建生成的 react 应用,上传到的位置是 root@121.196.110.91:/mnt/ninghao-react。
上传完成以后,可以在服务器上查看一下,用 ls 命令,查看当前目录 ninghao-react/build 里的东西,这里列出的东西就是刚才用 scp 命令上传上来的一些文件资源。
在浏览器,访问一下 ninghao-react.ninghao.co ,现在打开的就是我们构建好的 react 应用。
后面如果在本地修改了项目,需要再次执行 build 命令,然后把构建生成的应用重新上传到服务器指定的位置上。