nginx项目部署

1、概念
    1、Django项目(Web应用)
    2、web服务
        1、nginx
        2、Apache
            LNMP -> Linux Nginx MySQL Python/PHP/Perl
            LAMP -> Linux Apache MySQL Python/PHP/Perl
        3、uwsgi
            是WEB服务器和WEB框架之间一种简单而通用的接口
2、单项目部署(nginx+uwsgi+Django)
    1、确保django项目能够运行
    2、安装nginx
        1、安装:sudo pip3 install nginx
        2、启动:sudo /etc/init.d/nginx restart
        3、验证:127.0.0.1:80
    3、安装uwsgi
        1、安装:sudo pip3 install uwsgi
        2、验证(用uwsgi直接启动django项目)
            uwsgi --http :9998 --chdir /home/tarena/myproject/fruit/ --module fruit.wsgi

      3、再使用配置文件测试

[uwsgi]

#套接字方式的IP地址:端口号(此模式需要有nginx)
# socket = 0.0.0.0:8181

# http通信方式的IP地址:端口号
http = 0.0.0.0:8181
# 项目当前工作目录
chdir = /code
# 项目中wsgi.py文件的目录,相对于当前工作目录
wsgi-file = demo/wsgi.py
# 进程数(与cp核数取最小值)
processes = 4
# 线程数(不是越多越好)
thread = 2
# 进程文件
pidfile=uwsgi.pid
# 后台启动时日志存放的位置
daemonize=uwsgi.log
# 开启主进程管理模式(kill 进程后会自动重启)
master=true

# 启动uwsgi 进入到uwsgi配置文件所在目录
# uwsgi --ini uwsgi.ini
# 停止uwsgi 进入到uwsgi配置文件所在目录
# uwsgi --stop uwsgi.pid

    4、部署
        1、配置uwsgi(配置文件)
            1、mkdir uwsgi
            2、cd /home/tarena/uwsgi
            3、vi fruit_uwsgi.ini
                1、设置和nginx通信的端口
                    socket = 127.0.0.1:8001
                2、项目路径
                    chdir = /home/tarena/myproject/fruit
                3、wsgi.py路径
                    wsgi-file = fruit/wsgi.py
                4、进程数
                    processes = 4
                5、线程数
                    thread = 2
                6、本项目占用uwsgi端口
                    stats = 127.0.0.1:8081
        2、配置nginx(配置文件)
            1、sudo -i
            2、cd /etc/nginx/sites-enabled/
            3、vi project_nginx.conf
                server{
                        listen 8201;#浏览器访问项目的端口
                        server_name fruit.com;
                        charset utf-8;
                        client_max_body_size 75M;
                        location /static{
                            alias /home/tarena/myproject/fruit/static
                        }
                        # 和uwsgi进行通信,1、nginx下uwsgi_params文件 2,端口
                        location /{
                            include uwsgi_params;
                            uwsgi_pass 127.0.0.1:8001;
                        }

                }
            4、拷贝uwsgi_params文件到项目目录
                sudo cp /etc/nginx/uwsgi_params /home/tarena/myproject/fruit
            5、重启nginx服务
                sudo /etc/init.d/nginx restart
        3、收集静态文件
            1、settings.py文件,添加路径
                STATIC_ROOT = '/home/tarena/myproject/fruit/static/'
            2、收集静态文件
                python3 manage.py collectstatic
        4、uwsgi启动项目
            uwsgi --ini fruit_uwsgi.ini
3、多项目部署
    1、uwsgi:每个项目需要单独创建uwsgi配置文件,选用不同端口
    2、nginx配置文件,1个就可以,添加server{}
        项目2:个人博客
            浏览器访问端口:8202 ,listen 8202
            uwsgi和nginx通信端口:8002,socket=127.0.0.1:8002
            uwsgi占用端口:8082

4、访问流程


            

posted @ 2018-10-17 18:11  xdl_smile  阅读(343)  评论(0编辑  收藏  举报