Centos7部署Django Web 全流程之終章
前面的章節闡述了SVN、django、python、gunicorn、nginx
其中簡單的將django和gunicorn串了起來。
但是還沒有完全串成一條線,下面將串起來整個專案:
1. 開啟django專案的setting檔案:
將Debug=True改為Debug=False
將ALLOWED_HOSTS = ["127.0.0.1"]
2.確認靜態資源路徑配置
# 所有靜態檔案的最終放置目錄,
#即使用python manage.py collectstatic 命令後所有的app下面的靜態資源和下圖中的commonstatic資料夾中的靜態資源都會存放到static目錄中,這裡很重要!!!!!!!!
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
# 別名,即在html中{%static /bootstarp%}裡的static經過解析後的名稱。
#如果這裡STATIC_URL =‘static’,則瀏覽器引用靜態檔案時,其路徑為127.0.0.1/static/......
#如果這裡為STATIC_URL = 'staticAAAAA',則瀏覽引用時,則為127.0.0.1/staticAAAAA/......
STATIC_URL = '/static/'
# 新增其它路徑下的靜態資原始檔,這裡的路徑指的就是下面的commonstatic資料夾
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'commonstatic/').replace('\\', '/'),
)
為了讓各位更清晰的瞭解專案的靜態資源路徑,下圖為web工程:
注意!
注意!
注意!
如果,沒有特殊情況的話,請按照上方的配置,以免出現其他問題。
3. 修改nginx的conf配置,如果可以的話,請各位直接替換conf檔案中的server部分。
server {
listen 8000;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080;#動態請求交給gunicorn,8080埠就是gunicorn用的埠
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#root html;
#index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /static {
# alias /home/app/generalWeb/commonstatic;
alias /svn/generalWeb/static;
}
}
上面的配置中,著重強調兩點:
1.nginx監聽的埠改為8000,啟動瀏覽器時,請訪問8000埠,然後又讓gunicorn監聽的埠改為8080
2.location /static { alias /svn/generalWeb/static; } 指的是nginx啟動後項目所需要的靜態檔案去哪裡獲取。
4.cd到django專案目錄,執行資源歸併命令:
#python manage.py collectstatic
執行完命令後,專案根目錄會生產static資料夾,裡面是整個工程的靜態資源(包含各個app的)。
檢視static裡面的檔案:
#cd static/
#ls
5.啟動gunicorn,這裡要和nginx裡配置的8080埠對應:
# gunicorn -w4 -b0.0.0.0:8080 generalWeb.wsgi 專案根目錄執行
6. 啟動nginx (用另外一個終端執行)
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
7. 瀏覽器訪問127.0.0.1:8000
成功!!!!!!!!
撒花!!!!!!!!
鼓掌!!!!!!!!