云服务: 阿里云、腾讯云、华为云、
系统:ubuntu18.04
Python: 3.7+
Http服务器: Nginx
总结过程:
1.购买云服务器 (镜像选择推荐使用 ubuntu18.04)2.在云服务器中先测试项目(安装解决依赖和数据库等环境问题)3.在服务器中安装uwsgi和nginx4.配置uwsgi和nginx
购买阿里云服务器
链接服务器部署项目
- 安装python及项目所需依赖
pip3 install django==2.2.*pip3 install mysqlclient # 如果未安装mysql可能会出现错误,可以先安装mysql
- 安装python及项目所需依赖
安装mysql数据库及配置数据
apt-get install mysql-server # 安装mysql服务apt-get install libmysqlclient-dev # mysql客户端
使用navicat等工具进行远程连接mysql时的注意事项
- mysql默认的root用户只能本地连接,因此可以创建一个不限来源地的用户
- mysql服务器的配置文件中,默认只能本地连接mysql,因此可以修改配置文件 注释bind-address
- 检测阿里云等云服务器是否开启了 3306的端口,否则不能连接
关于wsgi和uwsg及nginx的区别和关系
wsgi:
让任意一个服务器都能搭配任意一个web框架,需要遵守wsgi的通用网关接口,就是一个协议
uwsgi:
uwsgi就是实现了wsgi的web服务器,可以接受客户端的请求,并转发响应的程序。使用uwsgi+django就可以实现一个基本的网站功能,为什么还需要nginx
nginx:
nginx是一个专业的HTTP服务器,可以作为代理服务器使用。
搭建uwsgi启动项目
安装uwsgi
pip3 install uwsgi --upgrade安装完成后配置uwsgi.ini文件
创建uwsgi.ini文件
创建script目录,存放配置
编辑uwsgi.ini文件内容如下: 目录参考个人目录进行修改
# uwsig使用配置文件启动[uwsgi]# 项目目录chdir=/var/www/bookshop# 指定项目的applicationmodule=bookshop.wsgi:application# 指定sock的文件路径socket=/var/www//bookshop/script/uwsgi.sock# 进程个数workers=5pidfile=/var/www/bookshop/script/uwsgi.pid# 指定IP端口http=0.0.0.0:8000# 指定静态文件static-map=/static=/var/www/bookshop/static/# 启动uwsgi的用户名和用户组uid=www-datagid=www-data# 启用主进程master=true# 自动移除unix Socket和pid文件当服务停止的时候vacuum=true# 序列化接受的内容,如果可能的话thunder-lock=true# 启用线程enable-threads=true# 设置自中断时间harakiri=30# 设置缓冲post-buffering=4096# 设置日志目录daemonize=/var/www/bookshop/script/uwsgi.log# 权限chmod-socket = 666chown-socket = www-data
安装nginx并进行测试
apt-get install nginx默认会启动80端口,可以在浏览器访问ip地址进行测试
创建项目的配置文件,或者直接修改原nginx配置文件都可以
vim /etc/nginx/sites-available/webtest.conf
```shell server { listen 80; server_name django-web-bookshop; charset utf-8;
client_max_body_size 75M;
location / {
uwsgi_pass unix:///var/www/bookshop/script/uwsgi.sock;include /etc/nginx/uwsgi_params;
}
location /media {
alias /path/to/project/media;
}
location /static {
alias /var/www/bookshop/static/;
}
} ```
7.创建完配置文件后创建软连接
sudo ln -s /etc/nginx/sites-available/webtest.conf /etc/nginx/sites-enabled/webtest.conf
tips:如果在浏览器访问新配置未生效时,可以删除默认生效配置
rm /etc/nginx/sites-enabled/default
拷贝项目到/var/www这个目录
cp -r /root/bookshop/bookshop /var/www/启动uwsgi服务
uwsgi --ini uwsgi启动nginx,重新加载配置文件
nginx -s reload
