一、Django中的配置
1、首先在ubuntu中项目相关的虚拟环境中将相关联的依赖包放到requirements.txt文件中
pip freeze > requirements.txt
2、安装python3以及新的虚拟环境,先删除 fdfs-client-py,并且在新的虚拟环境中安装依赖包(requirements.txt)
# 创建虚拟环境
mkvirtualenv -p python3 项目虚拟环境名称
#删除fdfs-client-py包
vim requirements.txt
#递归安装文件中的包
pip install -r requirements.txt
#安装fdfs客户端压缩包
pip install fdfs客户端压缩包
3、将项目主目录下的settings.py配置复制一份并且取名为pro_settings.py,并且修改以下内容。
#修改DEBUG为False
DEBUG = False
# 填写你自己的ip和域名
ALLOWED_HOSTS = [" 192.168.216.137", "127.0.0.1"]
# 此处设置可以访问服务器的IP地址,*为允许所以地址
4、修改项目主目录下的wsgi.py配置
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'pro_mysite.pro_settings')#第二个参数的点后面是刚刚复制了的一份配置文件
application = get_wsgi_application()
二、在项目根目录下创建相应的文件
1、在项目根目录下创建deploy文件夹
2、在deploy文件夹下创建logs文件夹,nginx_conf.conf,uwsgi_conf.ini,test.py,uwsgi.pid
3、在logs文件夹中创建uwsgi.log,记录相关的日志
三、进行uwsgi的相应的安装和测试
1、在部署项目的虚拟环境中安装uwsgi
pip install uwsgi
2、 测试uwsgi是否安装成功:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
3、运行uwsgi:
uwsgi --http :8000 --wsgi-file test.py
4、测试访问
四、nginx配置
1、安装nginx
sudo apt install nginx
2、启动nginx,查看启动状态,如果启动状态为active,则代表启动成功
sudo systemctl start nginx && sudo systemctl status nginx
3、在项目根目录下的deploy文件夹中nginx_conf.conf填写以下内容:
upstream pro_mysite {
# 此处为uwsgi运行的ip地址和端口号
server 192.168.212.132:8000;
}
server {
# 监听端口
listen 80;
# 服务器域名或者ip地址
server_name 192.168.212.132;
# 编码
charset utf-8;
# 文件最大上传大小
client_max_body_size 75M;
# 媒体文件
location /media {
alias /home/pyvip/pro_mysite/media;
}
# 静态文件
location /static {
alias /home/pyvip/pro_mysite/static;
}
# 主目录
location / {
uwsgi_pass pro_mysite;
include /etc/nginx/uwsgi_params;
}
}
4、将nginx_conf.conf复制到/etc/nginx/conf.d文件夹下
sudo cp nginx_conf.conf /etc/nginx/conf.d
5、修改ubuntu下/etc/nginx/文件夹中的nginx.conf的内容(第一行开头修改用户,将www-data改为你当前的用户)
user pyvip;
6、测试nginx配置文件是否正确
sudo nginx -t -c /etc/nginx/nginx.conf
# 打印如下内容,则没问题
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
7、重新加载配置
sudo nginx -s reload -c /etc/nginx/nginx.conf
8、执行第2步,再进行访问测试(出现下图代表nginx是好的,只可以访问静态的页面,动态的访问不了,继续往下配置)
五、进行uwsgi的相应的配置操作
1、在项目根目录中创建deploy目录,新建uwsgi_conf.ini文件(配置内容如下)
[uwsgi]
# 使用nginx连接时使用,Django程序所在服务器地址
# 选择内网IP和端口
socket=192.168.212.132(ip地址):8000(端口号)
# 项目根目录
chdir=/home/pyvip/pro_mysite(项目名)
#项目中wsgi.py文件的相对目录
wsgi-file=pro_mysite(项目名)/wsgi.py
# 进程数
processes=2
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。以前的runserver是依赖终端的
daemonize=logs/uwsgi.log
# 指定虚拟环境所在目录,不能填相对目录
virtualenv=/home/pyvip/.virtualenvs/project_deployment(部署项目的虚拟环境)
2、启动uwsgi
uwsgi --ini uwsgi_conf.ini &
3、停止uwsgi
uwsgi --stop uwsgi.pid
4、现在可以用配置的ip地址访问项目了,部署完成!!!!!
六、ngnix的管理命令
1、To stop your web server, type:
sudo systemctl stop nginx
2、To start the web server when it is stopped, type:
sudo systemctl start nginx
3、To stop and then start the service again, type:
sudo systemctl restart nginx
4、If you are simply making configuration changes, Nginx can often reload without dropping connections. To do this, type:
sudo systemctl reload nginx
5、By default, Nginx is configured to start automatically when the server boots. If this is not what you want, you can disable this behavior by typing:
sudo systemctl disable nginx
6、To re-enable the service to start up at boot, you can type:
sudo systemctl enable nginx
7、查看nginx 进程
ps -e | grep nginx
# 杀进程PID
sudo pkill -9 nginx
# 查端口
netstat -a
# 查看指定端口
netstat -ap | grep 8000
网友评论