如何使用Apache来服务Django服务器和React客户端?

时间:2017-09-14 03:54:16

标签: django apache reactjs deployment

我试图配置Apache2为后端API(/api/)提供Django,为客户端JS(/)提供React应用程序。

我希望根路径加载React应用(例如www.example.com/)。

我很难过。如果我Alias / Documentroot /到React的/build目录,则Apache停止为Django提供服务。相反,当我删除Alias / Documentroot时,Django服务很好,但React没有。我怎么能这样做?

这是我的httpd.conf文件:

```

DocumentRoot /home/ubuntu/project/webapp/build/
Alias / /home/ubuntu/project/webapp/build/
<Directory /home/ubuntu/project/webapp/build>
    Require all granted
</Directory>

Alias /static /home/ubuntu/project/webapp/build/static
<Directory /home/ubuntu/project/webapp/build/static>
    Require all granted
</Directory>

WSGIDaemonProcess server python-home=/home/ubuntu/python3.5/ python-path=/home/ubuntu/project/server
WSGIProcessGroup server
WSGIScriptAlias /admin /home/ubuntu/project/server/server/wsgi.py

<Directory /home/ubuntu/project/server/server>
<Files wsgi.py>
    Require all granted
</Files>
</Directory>

```

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

你尝试使用虚拟主机吗?所以设置1端口为后端提供服务,设置另一个端口为服务器前端服务。 我也使用apache httpd来服务器django&amp;反应应用程序,你可以检查我的httpd.conf&amp;这里是httpd-vhosts.conf Apache mod_wsgi django enable multi-thread multi-process

我有疑问,你真的想要为后端和后端提供服务吗?前端使用相同的apache实例?或者你将有2个实例/服务用于后端和前端,所以当一个apache httpd服务器关闭时,它不会造成另一个。

答案 2 :(得分:0)

首先,删除DocumentRoot以及指向build文件夹的第一个Alias and Directory。这些是不需要的。您只需要将别名和目录引导到build内部的静态文件夹。

您还需要确保Django知道在哪里可以找到您的React静态文件。我已经使用这种技术配置了一个应用程序。请参阅我关于这个确切主题here

的帖子