Django + Nginx + Uwsgi 配置服務器

Django + Nginx + Uwsgi 配置服務器


Django

tar -zxvf Django-1.6.11.tar.gz
cd Django-1.6.11
python setup.py install
  • 新建項目、應用
django-admin.py startproject ~/jiarenyf # 項目名爲jiarenyf
cd ~/jiarenyf
python manage.py startapp ydf # 應用名爲ydf
  • 運行應用
 python manage.py runserver 0.0.0.0:4567 # 發佈的ip

Uwsgi

  • 安裝
sudo apt-get install python-dev pip # 需要更新python
sudo pip install uwsgi # 需要pip安裝,才能直接支持django
  • 支持django
cd ~/jiarenyf
uwsgi --http :4567 --chdir ~/jiarenyf --module ydf.uwsgi
# 但是css、js文件無法加載,需結合nginx
  • 配置文件寫法(結合nginx)
<!-- 文件路徑:~/jiarenyf/uwsgi/ydf_socket.xml -->
<uwsgi>
    <socket>/dev/shm/ydf.sock</socket>
    <!-- <socket>127.0.0.1:9000</socket> -->
    <!-- 上述兩種選一種即可,對應的nginx配置要相同 -->
    <chdir>~/jiarenyf</chdir>
    <module>ydf.wsgi</module>
    <processes>4</processes>
    <enable-threads/>
    <chmod-socket>666</chmod-socket>
    <!-- 必須是666…… -->
    <listen>1024</listen>
    <!-- linux默認是128,要修改配置,如下小節 -->
    <!-- <daemonize>~/jiarenyf/uwsgi/ydf_uwsgi.log</daemonize> -->
    <!-- 若使用daemonize參數,則uwsgi會在後臺運行,並將輸出記錄在~/jiarenyf/uwsgi/ydf_uwsgi.log中> -->
</uwsgi>

<!-- 命令行: uwsgi -x ~/jiarenyf/uwsgi/ydf_socket.xml -->
  • 修改系統socket最大連接數
vim /etc/sysctl.conf
# 添加:
net.core.somaxconn=1024
# 退出vim
sysctl -p # 使之生效

Nginx

  • 安裝
sudo apt-get install nginx
  • 收集靜態文件
vim ~/jiarenyf/jiarenyf/settings.py
# 添加:
    STATIC_ROOT=~/jiarenyf/ydf/static
# 退出vim
cd ~/jiarenyf
python manage.py collectstatic
  • 配置文件編寫
# 文件路徑:~/jiarenyf/nginx/ydf_nginx.conf
upstream ydf_django{
    server unix:///dev/shm/ydf.sock;
    # server 127.0.0.1:9000;
    # 二選一,要與~/jiarenyf/uwsgi/ydf_socket.xml中socket對應
}

server{
    listen 4567;
    server_name  0.0.0.0;
    charset utf-8;

    client_max_body_size 5M;

    access_log ~/jiarenyf/nginx/access.log;
    error_log ~/jiarenyf/nginx/error.log;

    location /{
        include /etc/nginx/uwsgi_params;
        uwsgi_pass ydf_django;
    }

    location /static{
        alias ~/jiarenyf/ydf/static;
    }

    location /media{
        alias ~/jiarenyf/ydf/media;
    }
}
  • 使配置文件生效
sudo ln ~/jiarenyf/nginx/ydf_nginx.conf -s /etc/nginx/site-enabled
sudo service nginx restart
# 或 sudo nginx -s reload

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章