个人博客开发-06:Nginx + uWSGI + Django项目部署到阿里云服务器运行

版本:Python-3.8.1 + Django-2.2 + 阿里云服务器 Ubuntu-16.04
在正式部署前,需要确认几点:

  • 服务器上已经安装相应的 Python MySQL Nginx uWSGI 以及相应的python第三方库
  • 项目代码在本地可以运行,并且已经上传到服务器
  • 收集静态资源并导入项目包扩展文件(django项目收集静态文件)

1. Nginx配置文件

看很多教程都是在 /etc/nginx 目录下,在 nginx.conf 中进行配置。我配置的时候没有采用这种方法,在 /etc/nginx/sites-available 新建一个配置文件 blog.conf (名字可随意),写入内容:

# 对所有访问以 https:// 访问
server {
        listen 80;
        server_name www.huanyy.cn;
        rewrite ^(.*)$ https://www.huanyy.cn$1;
}

server {
        listen 443;
        server_name www.huanyy.cn;
        charset utf-8;
		
		# 配置SSL证书
        ssl on;
        ssl_certificate /etc/nginx/cert/huanyy.cn.pem; # 证书文件,在服务器的绝对路径
        ssl_certificate_key /etc/nginx/cert/huanyy.cn.key;
        ssl_session_timeout 5m;

        client_max_body_size 75M;
		
		# 收集静态资源的路径
        location /static {
                alias /home/newblog/static_collected;
        }
		
		# 用户或后台上传的文件路径
        location /media {
                alias /home/newblog/media;
        }
		
		# 其他路径交给uwsgi处理
        location / {
                uwsgi_pass 127.0.0.1:8001;
                include /etc/nginx/uwsgi_params;
        }
}

补充:
关于证书配置,在购买了阿里云服务器之后,可以申请免费的证书并下载。适用于Nginx的证书一般有两个文件,.crt(或 .pem)和 .key ,将这两个文件上传到服务器, 然后将路径写为绝对路径即可。

使用命令 ln -s /etc/nginx/sites-available/blog.conf /etc/nginx/sites-enabled/blog.conf,建立软链接,只有在 sites-enabled 目录下的配置文件才能够真正被用户访问。但是你同样可以将文件放在 sites-available 目录下用来存档或者生成链接。关于 sites-available 和sites-enabled 的区别可以参考:nginx 配置 nginx.conf 和sites-available中配置的区别 或者 nginx 配置详解(新手必看)

2. uwsgi配置

在 /home 目录下新建 blog_uwsgi 文件夹,用于存放 uwsgi 相关配置文件
创建 blog.ini 文件,内容如下:

[uwsgi]
# 项目路径
chdir = /home/newblog/
# 项目中 wsgi.py 文件的位置
module = Myblog.wsgi:application

master = True
processes = 4
harakiri = 60
max-requests = 5000

# 此处的 socket 需要与上面 nginx 中 location 中的 uwsgi_pass 一致,并且需要保证服务器安全组配置中该端口开放
socket = 127.0.0.1:8001
uid = 1000
gid = 2000

# 通过该文件重启或停止 uwsgi 服务
pidfile = /home/blog_uwsgi/master.pid
# 日志文件,记录错误信息
daemonize = /home/blog_uwsgi/blog.log
vacuum = True

3. 常用命令

当以上配置完成后可以使用 uwsgi --ini /home/blog_uwsgi/blog.ini 启动这个项目,可以在浏览器访问到网站

# 重启 nginx 服务
service nginx restart

# 查看当前 nginx 状态
nginx -t

# 查看当前 uwsgi 进程
ps -aux | grep uwsgi

# uwsgi 服务重启(master.pid 为个人定义)
uwsgi --reload master.pid

# uwsgi 服务停止
uwsgi --stop master.pid

4.参考博客

  1. B站杨仕航老师的视频给了我很多帮助
  2. 追梦人物的博客教程,虽然部署用到的软件不同,但在博客优化上可以参考
  3. 在博客详细页,可以引用样式实现代码高亮、显示代码行数
  4. 使用 Pygments 实现代码高亮

完结撒花

磕磕绊绊终于把博客上线了,有小伙伴看到可以看看效果: 别看我只是一只羊
只是一个超级简单的小项目,也没有互动功能~想加个文章评论,奈何我前端代码不会写,做的框框太丑,为了不影响美观删掉了很多板块。有交流的小伙伴可以通过邮箱和我获得联系,网站上的微信号是假的咯。。。前路漫漫,加油吧!

你可能感兴趣的:(Python,阿里云服务器)