项目部署、收集静态文件、nginx和uwsgi实现负载均衡。

项目部署

1)静态文件服务器

​ 开发阶段: live-server

​ 部署阶段: nginx

​ 域名: www.meiduo.site

Django项目静态文件收集:

# 设置setting配置文件
STATIC_ROOT = '指定收集静态文件的保存目录'

# 在终端执行收集静态文件的命令
python manage.py collectstatic

配置nginx服务器提供front_end_pc目录下的静态文件:

server {
        listen       80;
        server_name  www.meiduo.site;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            # 指定网站的根目录是html
            # root html;
            """现在指定网站的根目录是我们收集的静态文件"""
            root /Users/smart/Desktop/sh16_code/meiduo_sh16/front_end_pc;
            """如果访问的是网站的根路径,默认返回根目录下的index.html"""
            index index.html;
        }
        
        # ...
 }
  • 启动nginx: sudo /usr/local/nginx/sbin/nginx

  • 停止nignx: sudo /usr/local/nginx/sbin/nginx -s stop

  • 重启nginx: sudo /usr/local/nginx/sbin/nginx -s reload

2)后端API服务器

​ 开发阶段: django提供开发的web服务器 python manage.py runserver

​ 部署阶段: uwsgi 遵循wsgi协议的服务器

​ 域名: api.meiduo.site

uwsgi服务器基本使用:

安装: pip install uwsgi

配置:

"""注意这个前面的标识不能丢"""
[uwsgi]
# 使用nginx连接时使用,Django程序所在服务器地址
;socket=127.0.0.1:8001
# 直接做web服务器使用,Django程序所在服务器地址
http=127.0.0.1:8001
# 项目目录
chdir=/Users/smart/Desktop/sh16_code/meiduo_sh16/meiduo_mall
# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=meiduo_mall/wsgi.py
# 进程数
processes=4
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/Users/smart/.virtualenvs/django
  • 启动: uwsgi --ini ‘配置文件路径’

  • 停止: uwsgi --stop ‘uwsgi.pid文件路径’

配置nginx实现负载均衡:

upstream meiduo {
        # 指定业务服务器ip:port
        server 127.0.0.1:8001;
        server 127.0.0.1:8002;
    }   

    server {
        listen 8000;
        server_name api.meiduo.site;
        
        location / {
            # 保存uwsgi请求参数
            include uwsgi_params;
            # 请求转发
            # uwsgi_pass '业务服务器ip:port';
            uwsgi_pass meiduo;
        }
    }
    ```

你可能感兴趣的:(知识积累)