美文网首页
axf项目部署

axf项目部署

作者: fly5 | 来源:发表于2018-10-09 20:40 被阅读0次

    一、阿里云服务器连接

    • 重置密码
    • 安全组设置
    • ssh root@39.108.157.16

    二、服务器基本配置

    • 虚拟环境安装
    #   第一步:安装
        $ pip install virtualenv
        $ pip install virtualenvwrapper
    #   第二步: 查看安装目录
        $ type virtualenvwrapper.sh
    #   第三步:配置
        $ vi ~/.bashrc
            export WORKON_HOME=~/.virtualenvs
            source /usr/local/bin/virtualenvwapper.sh
    #   第四步:创建目录
        $ mkdir ~/.virtualenvs
    
    #   第五步:刷新环境
        $ source ~/.bashrc
    #   第六步:创建虚拟环境
        $ mkvirtualenv python -p /usr/bin/python3.5
    #   第七步:检查是否成功(是否为python3.5版本)
        $python
        
    # 备注:ubuntu中python2的环境默认都是全的,但是python的集成不够完整,有部分包屎欠缺的
        $ apt update
        $ apt install python3-dev
    
    
    • 数据库安装
    # 更新
    $ apt update 
    # 安装 
    $ apt install mysql-server 
    # 设置开机自启动 
    $ systemctl enable mysql.service
    # 查看状态 
    $ systemctl status mysql.service
    # 连接测试 
    $ mysql -uroot -p
    
    

    三、Nginx

    • 安装nginx
    # 安装
    ## key验证 
    $ wget http://nginx.org/keys/nginx_signing.key
    $ sudo apt-key add nginx_signing.key 
    ## 添加源
    ## deb http://nginx.org/packages/ubuntu/ codename nginx
    ## deb-src http://nginx.org/packages/ubuntu/ codename nginx
    ## 对应版本的源 codename 是 xenial
    ## deb http://nginx.org/packages/ubuntu/ xenial nginx
    ## deb-src http://nginx.org/packages/ubuntu/ xenial nginx 
    ## 添加到 /etc/apt/sources.list 文件中
    
    ## 更新源
    $ apt update
    
    ## 安装
    $ apt install nginx
    
    # 设置开机自启动 
    $ systemctl enable nginx.service
    
    # 查看状态 
    $ systemctl status nginx.service
    
    # 检查是否安装成功
    浏览器中输入服务器IP地址,可以看到`Welcome to nginx!`说明安装成功!
    

    卸载: apt remove nginx
    杀死进程:pkill -9 nginx

    • nginx配置文件结构
    main    # 全局设置
    events{     # 工作模式,连接配置
        ....
    }
    http{       # http的配置
        ...
        upstream xxx{...}   # 负载均衡配置
        server{             # 主机设置
            ...
            location xxx{   # URL匹配
                ...
            }
        }
    }
    
    • 2048游戏 测试配置
    # 说明: 2048目录中2048.html、bind_polyfill.js、style.css
    # 第一步 将2048目录拷贝到 /var/www/game/ 中
    
    # 第二步/etc/nginx/mynginx.conf配置
    user www-data;
    worker_processes auto;
    pid /run/nginx.pid;
    events {
        worker_connections 768; 
        # multi_accept on;
    }
    
    http { 
        ## 
        # Basic Settings
        ##
        
        sendfile on; 
        tcp_nopush on; 
        tcp_nodelay on;
        keepalive_timeout 65; 
        types_hash_max_size 2048;
        # server_tokens off; 
        
        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;
        
        
        
        include /etc/nginx/mime.types; default_type application/octet-stream;
        ##
        # SSL Settings 
        ##
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;
        ## 
        # Logging Settings
        ##
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log; 
        
        ##
        # Gzip Settings 
        ## 
        gzip on;
        gzip_disable "msie6";
        
        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6; 
        # gzip_buffers 16 8k; 
        # gzip_http_version 1.1; 
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
        
        
        ##
        # Virtual Host Configs
        ##
        
        #设定虚拟主机配置
        server {
            #监听80端口 
            listen 80; 
            listen [::]:80 ipv6only=on default_server;
            
            #服务器IP
            server_name 112.74.55.3;
            #默认请求 
            location /2048 {
                #别名
                alias /var/www/game/2048/;
                }
            } 
            
            #include /etc/nginx/conf.d/*.conf;
            #include /etc/nginx/sites-enabled/*; 
        
        } 
    # 第三步,指定配置文件启动 
    nginx -t -c mynginx.conf
    
    # 第四步,浏览器中访问 http://112.74.55.3/2048/2048.html
    

    四、django项目基本配置

    • 项目基本配置
    - 上传项目 
        $ scp -r axf root@112.74.55.3:/var/www
    - 安装依赖
        # 切换到项目目录中 
        $ pip install -r requirements.txt
    - 关闭调试模式 settings.py
        DEBUG = False 
    - 开启访问权限 settings.py 
        ALLOWED_HOSTS = ['*']
    - 启动项目 
        $ python manage.py runserver 0.0.0.0:8000
    - 浏览器(此时静态文件是访问不了的) 
        112.74.55.3:8000/axf/
    
    • 项目静态文件配置(对接nginx)
    - myniginx.conf配置(对应项目static的目录位置)
        #静态文件配置 
        location /static {
            #别名 
            alias /var/www/Python1807AXF/static/;
            
        }
    - 关闭nginx
        pkill -9 nginx
    - 对应配置文件启动 
        nginx -c mynginx.conf
    - 浏览器访问静态文件(确保能够访问项目的静态文件) 
        http://112.74.55.3/static/base/css/reset.css
    
    

    五、uwsgi

    • uwsgi基本使用
    - 安装(安装在虚拟环境中!!!) 
        $ pip install uwsgi
    - 项目目录中 添加 uwsgi.ini文件
        # 即是在axf目录中添加 
        touch uwsgi.ini
    - 配置uwsgi.ini文件(测试: 直接使用uwsgi,而不对接nginx)
        # uwsgi基本使用没问题,再对接上nginx,即打开socket,关闭http
        
        [uwsgi]
        # 使用nginx连接时 使用
        #socket=0.0.0.0:8000
        # 直接作为web服务器使用
        http=0.0.0.0:8010
        # 配置工程目录
        chdir=/var/www/axf/Python1807AXF
        # 配置项目的wsgi目录。相对于工程目录
        wsgi-file=Python1807AXF/wsgi.py
        
        #配置进程,线程信息 
        processes=1
        threads=1
        enable-threads=True
        master=True
        pidfile=uwsgi.pid
        daemonize=uwsgi.log
    - 使用
        # 启动 
        $ uwsgi --ini uwsgi.ini
        # 停止 
        $ uwsgi --stop uwsgi.ini
    # 访问测试(确保uswgi能够启动项目)  
        http://112.74.55.3:8010/axf/
    
    

    六、uwsgi与nginx对接

    • uwsgi对接nginx
    - uwsig.ini文件
        [uwsgi]
        # 使用nginx连接时 使用
        socket=0.0.0.0:8000
        # 直接作为web服务器使用
        #http=127.0.0.1:8010
        # 配置工程目录 chdir=/var/www/axf/PythonAXF
        # 配置项目的wsgi目录。相对于工程目录
        wsgi-file=PythonAXF/wsgi.py
        #配置进程,线程信息 
        processes=1
        threads=1
        enable-threads=True
        master=True
        pidfile=uwsgi.pid 
        daemonize=uwsgi.log 
    - mynginx.conf配置文件 
        #默认请求 
        location / {
            #导入了uwsgi的配置 
            include /etc/nginx/uwsgi_params;
            #设定了uwsig服务器位置 uwsgi_pass
            127.0.0.1:8000;
        }
        location /2048 {
            #别名 
            alias /var/www/game/2048/;
        }
        #静态文件 
        location /static{
            alias /var/www/axf/Python1807AXF/static/;
        }
        
        - 浏览器访问 http://112.74.55.3/axf/
    

    相关文章

      网友评论

          本文标题:axf项目部署

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