• django服务器配置


    服务器配置是Ubuntu14.04 64位OS

    ubuntu14.04默认是安装好了python2.7版本不用自己安装了。

    先更新下源

    sudo apt-get update

    第一步先安装pip

    sudo apt-get install -y python-pip

    有些时候安装pip前需要安装几个相关包

    sudo apt-get install -y python-dev

    sudo apt-get install -y libevent-dev

    安装完pip后我们开始安装django

    sudo pip install Django==1.7.1

    安装后输入Python进入交互环境输入django.VERSION查看版本

    开始装uwsgi

    下面这几个可能是相关包

    sudo apt-get install -y build-essential

    sudo apt-get install -y zliblg-dev

    sudo apt-get install -y libsqlite3-dev

    sudo apt-get install -y libreadline6-dev

    sudo apt-get install -y libgdbm-dev

    sudo apt-get install -y libbz2-dev

    sudo apt-get install -y tk-dev

    sudo apt-get install -y uwsgi-plugin-python

    安装uwsgi

    sudo pip install uwsgi

    可以写个test.py

    # test.py
    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return [b"Hello World"] # python3
        #return ["Hello World"] # python2

    输入uwsgi --http :8000 --wsgi-file test.py

    浏览器输入http://example.com:8000看是否显示helloworld

    再安装git

    sudo apt-get install -y git

    克隆项目

    用uwsgi启动项目

    uwsgi --ini ${current_path}${sep}/$uwsgi_name

    安装nginx

    sudo apt-get install -y nginx

    修改nginx配置文件,删掉原先包里的东西,加上软链接

    ln -s ${current_path}${sep}${p_name}${sep}${conf_name} /etc/nginx/sites-enabled/

    (

    sudo ln -s /data/www/ts/conf/ts_nginx.conf /etc/nginx/sites-enabled/
    sudo ln -s /data/www/ts/conf/ts_nginx.conf /etc/nginx/sites-available/

    )

    service nginx restart

    输入网址就可以了。

    另外你需要

     python manage.py collectstatic

    import os
    BASE_DIR = os.path.dirname(os.path.dirname(__file__))
    STATIC_ROOT = os.path.join(BASE_DIR, 'static2', ).replace('\', '/')
    STATIC_URL = '/static/'
    然后将静态文件从static2移动到static目录下

    输入网址就可以了。

    几个配置文件:

    nginx.conf:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    # the upstream component nginx needs to connect to
    upstream django {
        server unix:/etc/nginx/django/daowang/Wangdao.sock; # for a file socket
    }
     
    # configuration of the server
    server {
        # the port your site will be served on
        listen      80;
        # the domain name it will serve for
        server_name http://114.215.157.15/; # substitute your machine's IP address or FQDN
        charset     utf-8;
     
        # max upload size
        client_max_body_size 75M;   # adjust to taste
     
        # Django media
        location /media  {
            alias /etc/nginx/django/daowang/static/media;  # your Django project's media files - amend as required
        }
     
        location /static {
            alias /etc/nginx/django/daowang/static; # your Django project's static files - amend as required
        }
     
        location /FingerHire{
            proxy_pass http://127.0.0.1:8080;
        }
     
        # Finally, send all non-media requests to the Django server.
        location / {
            uwsgi_pass  django;
            include     /etc/nginx/django/daowang/uwsgi_params; # the uwsgi_params file you installed
        }
    }

    uwsgi.ini

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    [uwsgi]
     
    # Django-related settings
    # the base directory (full path)
    chdir           = /etc/nginx/django/daowang
    # Django's wsgi file
    module          = Wangdao.wsgi
    # master
    master          = true
    # maximum number of worker processes
    processes       = 32
    max-requests    = 1000
    # the socket (use the full path to be safe
    socket          = /etc/nginx/django/daowang/Wangdao.sock
    # ... with appropriate permissions - may be needed
    chmod-socket    = 666
    #chown-socket    = www-data:www-data
    # clear environment on exit
    vacuum          = true
    daemonize       = /var/log/uwsgi/Wangdao.log
    pidfile         = /tmp/project-master.pid
    # added 2014-09-17
    reload-on-as    = 126
    reload-on-rss   = 126
    enable-threads  = true
    pythonpath      = /etc/nginx/django/daowang

    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  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;
    复制代码

    配置下根目录下的wsgi.py

    import os
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Wangdao.settings")
    
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()

    常用命令:

    1.查看端口占用情况:

    netstat -lpnt

    2.杀死所有uwsgi进程

    killall -9 uwsgi

    3.uwsgi启动命令

    uwsgi --ini /etc/nginx/django/lovep2c/lovep2c_uwsgi.ini

    4.关闭uwsgi命令

    uwsgi --stop /tmp/project-master.pid

    5.重启uwsgi命令

    uwsgi --reload /tmp/project-master.pid

    nginx错误日志:

    tail /var/log/nginx/error.log

    uwsgi日志:

    tail /var/log/uwsgi/lovep2c.log

    项目错误日志:

    tail /etc/nginx/django/debug.log

    tail /etc/nginx/django/error.log

    参考网址:https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html

  • 相关阅读:
    网络中有三种通讯模式:单播、广播、组播(多播)
    chmod命令
    linux bash 命令重定向和多命令执行
    linux中管道符“|”的作用
    web测试常用的 linux 命令
    集群主要分成三大类 (高可用集群, 负载均衡集群,科学计算集群)
    iOS 监测电话呼入
    iOS NSUserDefaults [setValue:forKey:] [setObject:forKey:] <Objc> setValue(_,forKey:) set(_,forKey) <Swift 3>
    iOS 将navigationItem.titleView设置为自定义UISearchBar (Ficow实例讲解)
    iOS 加载Viewcontroller的几种方法
  • 原文地址:https://www.cnblogs.com/qingjun/p/4479354.html
Copyright © 2020-2023  润新知