1. 程式人生 > >nginx專案部署

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
    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