Django项目部署时要使用Nginx和uWSGI,具体步骤流程华纳云分享如下!
前提条件是准备好已配置公网IP地址或绑定弹性公网IP的云服务器、操作系统应该为Linux 、Ubuntu 22.04、Ubuntu 20.04、Ubuntu 18.04等、 安装Python和Django,并确保Django项目可以正常工作、ECS实例安全组的入方向添加安全组规则并放行22、80、8001和8002端口。
先远程连接linux服务器。运行一下命令查看Python的具体信息:
which python3
ll /usr/bin/python*
再安装部署Nginx环境执行以下命令进行安装:
sudo yum -y install nginx
启动并查看Nginx服务状态:
sudo systemctl start nginx
systemctl status nginx
如果回显信息中出现Active: active (running),表示Nginx服务已启动。
安装uWSGI。用pip安装uWSGI
sudo pip3 install uwsgi
配置uWSGI。创建uWSGI配置文件(例如`uwsgi.ini`),配置项目路径、socket、进程数等参数。配置示例:
```
[uwsgi]
socket = 127.0.0.1:8001
chdir = /home/myblog/uwsgi_project/
wsgi-file = uwsgi_project/wsgi.py
processes = 4
threads = 2
vacuum = true
buffer-size = 65536
```
执行下面命令进行创建测试目录,以创建/home/myblog目录为例,根据需求自定义文件路径。
sudo mkdir /home/myblog
执行下面命令,创建并编辑测试程序文件test.py:
cd /home/myblog
sudo vim test.py
按I进入编辑模式,复制下面内容添加到文件中:
def application(env,start_response):
start_response('200 ok',[('Content-Type','text/html')])
return [b"Hello World"]
按Esc退出,输入:wq保存并退出文件,执行以下命令测试运行访问。
sudo /usr/local/bin/uwsgi --http :8001 --wsgi-file test.py
确保`socket`字段值与Nginx配置文件中的`uwsgi_pass`端口一致。
启动uWSGI服务.使用命令`uwsgi --ini uwsgi_config.ini`启动uWSGI服务。
配置Nginx。 配置Nginx的`server`块,设置监听端口、服务器名、静态文件路径和代理uWSGI的配置。示例配置:
```
server {
listen 80;
server_name your_domain_or_IP;
location /static {
alias /path/to/your/static/files;
}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;
}
}
```
- 确保`uwsgi_pass`指向uWSGI监听的地址和端口。
重启Nginx服务。使用命令`sudo systemctl restart nginx`重启Nginx服务。
安装Django:
sudo pip3 install Django
执行下面命令,创建项目。以创建项目文件uwsgi_project为例,您可以根据需求自定义文件夹。
sudo /usr/local/bin/django-admin.py startproject uwsgi_project
执行以下命令,编辑settings.py文件。
sudo vim /home/myblog/uwsgi_project/uwsgi_project/settings.py
输入i进入编辑模式,将ALLOWED_HOSTS = [ ]修改为ALLOWED_HOSTS = ["*"]。修改完成后,按Esc键,输入:wq保存并退出文件。
执行以下命令启动Django环境
cd /home/myblog/uwsgi_project
sudo python3 manage.py runserver 0.0.0.0:8002
如出现错误:
django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).
可以将settings.py文件中的DATABASES注释掉,重新启动Django环境即可。修改settings.py文件的具体操作。
在本地电脑浏览器的地址栏输入http://<ECS实例的公网IP地址>:8002,即可访问相关Django页面。
访问Django页面:在浏览器中输入`http://<ECS实例的公网IP地址>`,即可访问Django页面。
以上步骤概述了使用Nginx和uWSGI部署Django项目的流程。具体配置可能因项目和环境差异而有所不同,需要根据实际情况进行调整。