django+uwsgi+nginx配置

 當咱們開發完django的應用程序後,須要將其部署到服務器上,部署過程當中可能出現各類各樣的問題,所以想把本身遇到的問題記錄下來,以便在之後再遇到能夠快速的查閱。nginx

uwsgi安裝:django

pip安裝:pip install uwsgi      測試:uwsgi --version瀏覽器

nginx安裝:緩存

下載:wget http://nginx.org/download/nginx-1.6.2.tar.gz安全

依賴包安裝:服務器

    yum install -y pcre pcre-devel app

    yum install -y zlib zlib-devel socket

    yum install -y openssl openssl-develpost

解壓:tar -zxvf nginx-1.6.2.tar.gz -C /usr/local/測試

配置:./configure --prefix=/usr/local/nginx

編譯安裝:make && make install

(備註:以上uwsgi安裝和nginx安裝均需依賴C的編譯環境,先配置環境)

啓動:/usr/local/nginx/sbin/nginx

檢查是否啓動:ps -ef|grep nginx

 

關閉防火牆:chkconfig iptables off(虛擬機下能夠直接關閉,實際生產環境下由於有物理防火牆,因此也能夠關閉,若是安全限制,能夠單獨開放所需端口)

頁面訪問:http://主機IP:端口 (出現歡迎頁面)

uwsgi配置文件uwsgi.ini:

chdir=/home/zhangwei/ywpt/Django-1.4.20/untitled1
# 指定項目的application
module=untitled1.wsgi:application
# 指定sock的文件路徑
socket=/home/ywpt/Django-1.4.20/untitled1/script/uwsgi.sock
# 進程個數
workers=5
pidfile=/homeywpt/Django-1.4.20/untitled1/script/uwsgi.pid
# 指定IP端口
http=192.168.2.129:8000
# 指定靜態文件
static-map=/static=/home/ywpt/Django-1.4.20/untitled1/static
#static=/home/ywpt/Django-1.4.20/untitled1/static
# 啓動uwsgi的用戶名和用戶組
uid=root
gid=root
# 啓用主進程
master=true
# 自動移除unix Socket和pid文件當服務中止的時候
vacuum=true
# 序列化接受的內容,若是可能的話
thunder-lock=true
# 啓用線程
enable-threads=true
# 設置自中斷時間
harakiri=30
# 設置緩衝
post-buffering=4096
# 設置日誌目錄
daemonize=/home/ywpt/Django-1.4.20/untitled1/script/uwsgi.log

nginx配置文件nginx.conf:

server {
listen 80;
server_name 192.168.2.129;
charset utf-8;
access_log logs/bdmp.log main;

location / { # 這個location就和我們Django的url(r'^admin/', admin.site.urls),
include uwsgi_params; # 導入一個Nginx模塊他是用來和uWSGI進行通信的
uwsgi_connect_timeout 30; # 設置鏈接uWSGI超時時間
uwsgi_pass unix:/home/zhangwei/ywpt/Django-1.4.20/untitled1/script/uwsgi.sock; # 指定uwsgi的sock文件全部動態請求就會直接丟
}

}

配置完成後,從新啓動uwsgi、nginx,頁面再次訪問,就OK啦

不過須要注意的地方有STATIC_ROOT、STATIC_URL、STATICFILES_DIRS也須要配置,同時可能由於Debug=false等緣由致使靜態文件不能正常加載。

若在嘗試過程當中,發現靜態文件出現304報錯,則由於緩存影響,更換瀏覽器或清除緩存便可。

相關文章
相關標籤/搜索