【问题标题】:How to use Apache to serve Django server and React client?如何使用 Apache 为 Django 服务器和 React 客户端提供服务?
【发布时间】:2018-02-22 21:58:23
【问题描述】:

我正在尝试将 Apache2 配置为为 Django 提供后端 API (/api/),以及为客户端 JS (/) 提供 React 应用程序。

我想要加载 React 应用程序的根路径(例如 www.example.com/)。

我很难过。如果我将 / 别名/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>

```

【问题讨论】:

    标签: django apache reactjs deployment


    【解决方案1】:

    首先,删除 DocumentRoot 以及指向build 文件夹的第一个别名和目录。这些是不需要的。您只需要指向 build 中的静态文件夹的别名和目录。

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

    【讨论】:

      【解决方案2】:

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

      我有一个问题,您真的想使用相同的 apache 实例同时为后端和前端提供服务吗?或者您将有 2 个用于后端和前端的实例/服务,因此当一个 apache httpd 服务器出现故障时,不会影响另一个。

      【讨论】:

        【解决方案3】:
        猜你喜欢
        • 2019-09-22
        • 2021-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-01
        • 1970-01-01
        • 2017-07-23
        相关资源
        最近更新 更多