反应生产中要使用什么代替代理?

时间:2019-07-18 20:31:20

标签: reactjs apache production

我知道proxy中的package.json设置仅适用于开发人员。所以问题是:

如何使应用程序在产品中工作(完成yarn build)并部署到apache之后?

我尝试了很多事情,似乎没有任何作用。

我的REST API(服务器端)是在:8080上运行的Java

当我部署应用并尝试请求时,请求转到localhost/api而不是localhost:8080/api

我所有的内容如下:

await fetch(`/api/group/${id}`, {

最简单,最灵活的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

到目前为止,我找到的唯一可行的解​​决方案是在apache服务器上配置VirtualHost

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  ProxyPreserveHost On
  ProxyRequests Off
  ServerName www.example.com
  ServerAlias example.com
  ProxyPass /api/ http://localhost:8080/api/
  ProxyPassReverse /api/ http://localhost:8080/api/
</VirtualHost>

然后我必须启用模块并重新启动apache。

步骤(ubuntu):

  1. cd /etc/apache2/sites-available
  2. sudo cp 000-default.conf react.conf
  3. sudo a2dissite 000-default.conf
  4. sudo a2ensite react.conf
  5. sudo a2enmod-此处已全部启用*
  6. sudo systemctl restart apache2

现在我的/api指向localhost:8080/api