zoukankan      html  css  js  c++  java
  • 阿里云搭建django+nginx+uwsgi环境

    阿里云搭建django环境

    更新源

    sudo apt-get update
    sudo apt-get upgrade
    

    安装nginx

    sudo apt-get install nginx
    sudo /etc/init.d/nginx start (start可以改成restart/stop)
    #或是sudo service nginx start
    然后浏览器输入服务器IP,观察是否有welcom to nginx!
    

    安装py3和virtualenv

    sudo apt-get install git python3 python3-pip
    sudo pip3 install virtualenv
    

    修改python版本:

    法一:(不建议)
    $ gedit ~/.bashrc   	#gedit .bash_aliases
    在顶部加入一行alias python=python3
    $ source ~/.bashrc	    #或是source ~/.bash_aliases o
    $ python --version
    就会发现是Python 3.5.2啦
    
    /*or
    Open your .bashrc file nano ~/.bashrc. Type alias python=python3 on to a new line at the top of the file then save the file with ctrl+o and close the file with ctrl+x. Then, back at your command line type source ~/.bashrc. Now your alias should be permanent.
    */
    
    Ubuntu16.04切换python3和python2
    ▲.切换Python3为默认版本:(建议)
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
    

    切换Python2为默认版本:

    sudo update-alternatives --config python
    

    安装虚拟环境

    cd /var/www
    sudo virtualenv env35
    

    下载和配置网站

    sudo git clone https://github.com/KyrieWang233/homework_submission-master.git
    source env35/bin/activate
    cd home...
    sudo pip3 install -r requirements.txt
    
    sudo python manage.py collectstatic
    sudo python manage.py migrate
    python manage.py createsuperuser
    sudo vim settings.py将其中的ALLOWED_HOST=[*]改为自己的IP
    
    然后输入 python manage.py runserver 0.0.0.0:8000
    

    安装、测试uwsgi

    sudo pip3 install uwsgi
    uwsgi --http :8000 --module homework_submission.wsgi
    

    编辑/var/www下的uwsgi.ini

    [uwsgi]
    chdir=/var/www/homework_submission-master
    module=homework_submission.wsgi
    home=/var/www/env35
    master=True
    processes=10
    socket= :8001
    chmod socket=666
    vacuum=True
    max-requests=5000
    

    编辑/var/www下的nginx.conf

    upstream django{
    server 127.0.0.1:8001;
    }
    server {
    listen 80;
    server_name sast.nymrli.top;
    charset utf-8;
    client_max_body_size 75M;
    location /static{
    alias /var/www/homework_submission-master/static;  
    }
    location /{
    uwsgi_pass django;
    include /var/www/uwsgi_params;
    }
    }
    

    编辑/var/www下的uwsgi_params

    uwsgi_param QUERY_STRING 	$query_string;
    uwsgi_param REQUEST_METHOD 	$request_method;
    uwsgi_param CONTENT_TYPE 	$content_type;
    uwsgi_param CONTENT_LENGTH 	$content_length;     
    
    uwsgi_param REQUEST_URI     	$request_uri;     
    uwsgi_param PATH_INFO     	$document_uri;     
    uwsgi_param DOCUMENT_ROOT    	$document_root;     
    uwsgi_param SERVER_PROTOCOL 	$server_protocol;     
    uwsgi_param REQUEST_SCHEME 	$scheme;     
    uwsgi_param HTTPS     		$https if_not_empty;     
    
    uwsgi_param REMOTE_ADDR     	$remote_addr;     
    uwsgi_param REMOTE_PORT     	$remote_port;     
    uwsgi_param SERVER_PORT    	$server_port;   
    uwsgi_param SERVER_NAME    	$server_name;
    

    软连接

    cd /etc/nginx
    cd sites-enabled
    rm default
    ln -s /var/www/nginx.conf homework_submission
    ls
    

    重启nginx

    /etc/init.d/nginx restart

    运行uwsgi

    cd /var/www
    uwsgi --ini uwsgi.ini
    

    让uwsgi自启动

    vim /etc/rc.local(注意非虚拟环境也得安装uwsgi模块)

    添加下面代码:
    /usr/local/bin/uwsgi --ini /var/www/uwsgi.ini
    
    exit 0
    

    uwsgi的热启动

    在uwsgi.ini中加入

    py-autoreload=1

    重启一下:killall -9 uwsgi/usr/local/bin/uwsgi --ini /var/www/uwsgi.ini


    总结

    关于etc/ linit. d

    如果你使用过inux系统,那么你一定听说过 init. d目录,这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要。init.d目录包含许多系统各种服务的启动和停止脚本

    关于 /etc/rc.local

    rc.local也是我经常使用的一个脚本,该脚本是在系统初始化级别脚本运行之后再执行的,因此可以安', '地在里面添加你想在系统启动之后执行的脚本.

    总结

    Linux是灵活的,正因为它的灵活性,我们总是可以找到许多不同的办法来解决同一个问题,服务的例子就是一个很好的佐证,有了 /etc/init.d目录下的脚本,再加上 /etc/rc. local这个利器,你可以放心的确保你的服务可以完美的启动和运行

  • 相关阅读:
    springMVC接收前端参数的方式
    使用jQuery进行图片分页,每页形成九宫格
    bootstrapTable行样式设置
    BLUEKING----蓝鲸
    Golden Gate 特点及用途
    Linux 如何解决 xhost: unable to open display ""
    LINUX 磁盘如何分区
    ses_cations 值顺序
    简单了解undo
    演示行级排他锁
  • 原文地址:https://www.cnblogs.com/nymrli/p/9777578.html
Copyright © 2011-2022 走看看