nginx+uwsgi部署django项目实战经验

1.nginx操作:

Nginx是一个提供静态文件访问的web服务,然而,它不能直接执行托管Python应用程序,而uWSGI解决了这个问题。让我们先安装uWSGI,稍候再配置Nginx和uWSGI之间的交互。
  • 检查配置文件是否正常:nginx -t
  • 启动:sudo service nginx start
  • 重启:sudo service nginx restart
  • 关闭:sudo service nginx stop
  • 重载入:sudo service nginx reload
修改配置文件:sudo vim /etc/nginx/conf.d/file_server.conf
server {
    listen  80;          # 监听端口
    server_name    localtion; # 自己PC的ip或者服务器的域名
    charset utf-8; # 避免中文乱码
    root /home/ubuntu/share;    # 文件路径
    location / {
	limit_rate 800k;
	proxy_max_temp_file_size 2048m;
        autoindex on; # 索引
        autoindex_exact_size on; # 显示文件大小
        autoindex_localtime on; # 显示文件时间
    }
}
删除默认配置文件:sudo rm /etc/nginx/sites-enabled/default
重启:sudo nginx -s reload
第一种:在sites-available目录下新建配置文件链接到sites-enabled目录下
ln -sf  /etc/nginx/sites-available/文件  /etc/nginx/sites-enabled/文件
第二种:删掉Nginx的默认配置文件
sudo rm /etc/nginx/sites-available/default
新建nginx的配置文件:sudo vim /var/www/项目名/nginx.conf
将配置文件链接到nginx配置文件中:
sudo ln -sf /var/www/项目下/nginx.conf  /etc/nginx/conf.d/
重启: sudo /etc/init.d/nginx restart
nginx配置文件:
#上游组件需要连接到nginx
upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
    server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}

#服务器的配置
server {

    listen      8000;     # 监听端口
    server_name .example.com; #     #域名服务
    charset     utf-8;
    client_max_body_size 75M;   # 最大上传大小
    
    location /media  {
        alias /path/to/your/mysite/media;  # Django项目的文件,根据需要修改
    }

    location /static {
        alias /path/to/your/mysite/static; #Django项目的静态文件,根据需要修改
    }

    # 最后,将所有非媒体请求发送到服务器Django。
    location / {
        uwsgi_pass  django;#127.0.0.1:80001
        include  /etc/nginx/uwsgi_params;
        #include     /path/to/your/mysite/uwsgi_params;
    }
}
2.uwsgi操作:
  • 启动:uwsgi --int uwsgi的ini文件
  • 重启:uwsgi --reload uwsgi的pid文件
  • 查看:ps -aux | grep uwsgi
  • 关闭:uwsgi --stop uwsgi的文件
  • 关闭相关进程:ps -aux |grep uwsgi |awk '{print $2}' |xargs kill -9
新建uwsgi文件:sudo vim /var/www/项目名/uwsgi.ini
[uwsgi]
chdir  = /path/to/your/project    #项目路径
home  = /path/to/virtualenv # 虚拟文件
module  = project.wsgi          #wsgi:application
master  = true
processes = 4      #最大进程数
harakiri = 60 
max-request =5000
# the socket (use the full path to be safe
socket = /path/to/your/project/mysite.sock #127.0.0.1:8001
uid =1000
gid = 2000
pidfile = uwsgi的pid文件路径
# chmod-socket = 664
daemonize = /var/log/uwsgi
vacuum = true
需要新建uwsgi的log日志,更改文件夹所有权:
sudo mkdir -p /var/log/uwsgi
sudo chown -R ubuntu:ubuntu /var/log/uwsgi
执行uwsgi:uwsgi --ini /var/www/项目名/uwsgi.ini
可查看进程检查uwsgi运行情况:ps -ef |grep uwsgi
3.Supervisor的操作
Supervisor可以同时启动多个应用,最重要的是,当某个应用Crash的时候,他可以自动重启该应用,保证可用性。
安装 Supervisor:sudo apt-get install supervisor
Supervisor 的全局的配置文件位置在:/etc/supervisor/supervisor.conf
正常情况下我们并不需要去对其作出任何的改动,只需要添加一个新的 *.conf 文件放在:/etc/supervisor/conf.d/
建立一个用于启动 my_project 项目的 uwsgi 的 supervisor 配置 (命名为:my_project_supervisor .conf):
[program:forum]
command=/var/www/demoapp/demoapp_uwsgi.ini        ; supervisor启动命令
directory=/var/www/demoapp/project1
istopsignal=QUIT
autostart=true                                ; 是否自动启动
autorestart=true                              ;是否自动重启
stdout_logfile=/var/log/uwsgi/supervisor_forum.log                ; log 日志
stderr_logfile=/var/log/uwsgi/supervisor_forum_err.log
启动服务:sudo service supervisor start
终止服务:sudo service supervisor stop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值