我的项目是使用[ReactJS + php + mysql]创建的。我已经设置了npm install
,npm start
之类的本地环境,这很好,我的网站在本地PC localhost:1234上运行良好。之后,我想将ReactJS Web应用程序部署到生产环境中,为此,我拥有了Digitalocean的Ubuntu 18.04服务器。为此,我安装了Nginx Web服务器,并让加密的SSl拥有一个已完成的DNS xplosa.com,它目前指向nginx主页。
我尝试了npm build
,但没有错误,我可以在项目中看到一个名为 dist 的目录,该目录的部署源是无序的文件,反正我只是复制了dist包含(在我的本地PC中)使用SFTP方法传输到我的Nginx指向目录(我的Digitalocean的ubuntu服务器),但是在我重新启动Nginx并使用www.xplosa.com在Internet上检查我的网站后,它仅显示我的网站欢迎消息。之后,我从中删除了我的源代码,并保留了它的欢迎页面,然后回到我的本地PC并检查它在我的本地计算机上是否可以正常工作。请帮助我在生产环境上部署ReactJS Web应用程序
答案 0 :(得分:1)
首先在生产环境上部署并构建您的React应用。
并配置Nginx将服务器作为静态服务器:
server {
listen 80;
server_name www.xplosa.com xplosa.com;
rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
rewrite ^/(.*)/$ /$1 permanent;
root /home/ubuntu/www/your-path/;
index index.html;
try_files $uri/index.html $uri.html $uri/ /home/ubuntu/www/your-path/index.html /home/ubuntu/www/your-path/$uri.html $uri =404;
}
注意: 如果请求的资源不存在,上述配置将为索引页提供服务,因此将很好地满足您的目的。 并且您必须使用Nginx来保护Php结束
答案 1 :(得分:0)
您可以使用update ip table进行操作,并将流量从80端口重定向到生产服务器中的1234端口。
您可以使用pm2命令将端口注册为始终在生产服务器中运行,然后使用ip表可以重定向端口。
另一种选择是只提供构建文件夹的路径和配置文件(apache2或nginx)中的服务器路径。