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