项目部署到ubuntu中(四十八)

2019-08-13  本文已影响0人  梦捷者

一、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
上一篇下一篇

猜你喜欢

热点阅读