为了在阿里云服务器上通过 Nginx 和 uWSGI 部署 Django + Vue 3 实现的 Elasticsearch 搜索页面,你需要执行以下步骤:
准备阿里云服务器并安装必要的软件:
- Nginx
- uWSGI
- Python 环境(包括 Django 和 Elasticsearch 客户端)
配置 Django 项目:
- 设置
uwsgi
配置文件。 - 设置
nginx
配置文件,使其指向 uWSGI 服务。
- 设置
- 配置 Elasticsearch 集群(如果尚未配置)。
- 部署 Django 项目代码到服务器。
- 部署 Vue 3 前端代码到 Nginx 静态文件目录。
- 启动 uWSGI 服务和 Nginx 服务。
以下是可能的配置文件示例:
uwsgi.ini
(Django 项目的 uWSGI 配置):
[uwsgi]
module = myproject.wsgi:application
http = :8000 # Django 项目的内部端口
master = true
processes = 4
threads = 2
chdir = /path/to/your/django/project # Django 项目的路径
static-map = /static=/path/to/your/django/project/static # 静态文件映射
nginx.conf
(Nginx 配置):
server {
listen 80;
server_name your_domain.com; # 你的域名
location /static {
alias /path/to/your/django/project/static; # Django 静态文件目录
}
location / {
uwsgi_pass 127.0.0.1:8000; # uWSGI 服务地址和端口
include /path/to/your/uwsgi_params; # uWSGI 参数文件
}
location /search/ {
proxy_pass http://your_elasticsearch_host:port; # Elasticsearch 地址和端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
确保在阿里云服务器上安装了 Nginx 和 uWSGI,并且配置了相应的 Python 环境。
启动 Nginx 和 uWSGI 的命令:
uwsgi --ini /path/to/your/uwsgi.ini
sudo service nginx start
确保你的 Vue 3 前端构建生成的静态文件已经部署到 Nginx 的静态文件目录,并且在部署 Django 项目时已正确设置了静态文件的映射。
最后,确保阿里云服务器的安全组规则正确设置,以允许外部访问 80 端口(HTTP)和你所使用的任何其他端口。