Apache部署Django+vue记录

本文详细介绍如何将Vue前端与Django后端部署到Apache服务器的过程。包括端口设置、Python环境配置、虚拟站点配置及Vue静态文件部署等内容,并记录了解决加载异常、跨域等问题的方法。

前言

业务需要,选定 Vue+Django 搭建了个数据管理平台。功能开发完成后,正式部署上线。由于历史遗留,选择部署至Apache服务器。

前端Vue 端口设置8080
后端Django 端口设置8081

一、Apache参数设置

参数文件 Apache/conf/httpd.conf**

1.端口设置

开启端口监听(66行左右)

	Listen 8080
	Listen 8081

Server端口开启

	ServerName localhost:8080
	ServerName localhost:8081

2.Python环境及项目路径

配置python路径及工程django关联模块

	LoadFile "c:/python37/python37.dll"
	LoadModule wsgi_module "c:/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win32.pyd"
	WSGIPythonHome "c:/python37"

指向项目路径

	WSGIPythonPath "K:/Frontend-Tools/01_Product_Dev_Aux_Tools/20200811_CapabilitiesSetWeb/Trunk/FrontendCapSite

3.Django虚拟站点

<VirtualHost *:8081 >
    ServerAdmin example@company.com
	WSGIScriptAlias / K:/FrontendTools/01_Product_Dev_Aux_Tools/Trunk/FrontendCapSite/FrontendCapSite/wsgi.py
    DocumentRoot K:/Frontend-Tools/01_Product_Dev_Aux_Tools/Trunk/FrontendCapSite/FrontendCapSite 
    <Directory "K:/Frontend-Tools/01_Product_Dev_Aux_Tools/Trunk/FrontendCapSite">
        Require all granted
    </Directory>
</VirtualHost>

4.Vue部署

前端部署时,conf文件加下新建webqd.conf,设置前端静态路径

	Listen 10.2.194.225:8080
	ServerName 10.2.194.225:8080
	LoadModule rewrite_module modules/mod_rewrite.so
	#配置网页路径
	<Directory "K:/@capwww/front">
		AllowOverride none
		Require all granted
	</Directory>

httpd.conf文件中将该参数导入

	Include conf/webqd.conf

最后,httpd.conf中DocumentRoot和Directory(260行左右)指向目标前端静态文件(被坑了好久…)。

二、问题记录

1.加载异常

若后端开发引用了numpy,cv2等库 在python子解释器里调用不了,加上那句话就强制使用python的主解释器。

	WSGIApplicationGroup %{GLOBAL}

参考:https://blog.youkuaiyun.com/wuchunquan123/article/details/107486330

2.跨域设置

涉及到跨域问题,需要加载mod_headers

	LoadModule headers_module modules/mod_headers.so

3.Django 、Vue参数配置

工程部分参数需要提前在Django工程setting.py和Vue工程conf/index.js中完成,然后进行Apache部署设置。

### 如何在宝塔面板上部署结合DjangoVue的项目 在宝塔面板上部署结合Django后端与Vue前端集成的项目,需要分别处理前后端的部署问题,并确保两者能够正确通信。以下是详细的说明和步骤: #### 1. 宝塔面板环境准备 首先需要在宝塔面板中创建一个网站,并安装必要的运行环境。包括但不限于Python环境、Nginx或Apache服务器等。可以通过宝塔面板的“软件商店”快速安装这些组件[^1]。 #### 2. Django后端部署 对于Django后端的部署,可以使用Gunicorn作为WSGI服务器来运行Django应用,并通过Nginx进行反向代理。具体操作如下: - **安装依赖**:在服务器上安装Gunicorn和相关依赖库。 ```bash pip install gunicorn ``` - **启动Gunicorn**:使用Gunicorn运行Django应用。 ```bash gunicorn your_project_name.wsgi:application --bind 0.0.0.0:8000 ``` 其中`your_project_name`为Django项目的名称,`8000`为绑定的端口号[^1]。 - **配置Nginx反向代理**:在宝塔面板中编辑网站的Nginx配置文件,添加反向代理规则以将请求转发到Gunicorn监听的端口。 ```nginx location /api/ { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ``` #### 3. Vue前端部署 Vue前端通常以静态文件的形式存在,因此可以直接通过Nginx进行服务。具体操作如下: - **构建Vue项目**:在本地或服务器上执行以下命令生成静态文件。 ```bash npm run build ``` - **上传静态文件**:将`dist`目录中的内容上传至宝塔面板网站根目录下。 - **配置Nginx静态资源服务**:在Nginx配置文件中设置静态资源路径。 ```nginx location / { root /www/wwwroot/your_website_root/dist; index index.html; try_files $uri /index.html; } ``` #### 4. 前后端通信 确保Django后端和Vue前端能够正确通信。通常需要在Vue前端代码中配置API接口的基础URL,例如: ```javascript axios.defaults.baseURL = '/api/'; ``` 这将使得所有API请求都会被发送到`/api/`路径下,而该路径已被Nginx配置为转发到Django后端[^2]。 #### 5. 配置HTTPS(可选) 为了提高安全性,建议为网站启用HTTPS。可以通过宝塔面板的“SSL”功能申请并安装免费证书。 --- ### 注意事项 - 确保服务器防火墙开放了必要的端口,例如80(HTTP)、443(HTTPS)以及Gunicorn使用的端口(如8000)。 - 如果使用跨域资源共享(CORS),需要在Django项目中安装并配置`django-cors-headers`中间件。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值