美文网首页
项目部署到ubuntu中(四十八)

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

作者: 梦捷者 | 来源:发表于2019-08-13 15:08 被阅读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
    

    相关文章

      网友评论

          本文标题:项目部署到ubuntu中(四十八)

          本文链接:https://www.haomeiwen.com/subject/xemvjctx.html