nginx+uwsgi+django環(huán)境搭建的方法步驟
環(huán)境搭建
1.安裝uwsgi、nginx和django
apt install nginx pip install uwsgi pip install django
2.測(cè)試uwsgi和nginx的連接
PS:下面的例子采用的是 unix socket 的鏈接發(fā)送
創(chuàng)文件foobar.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
創(chuàng)文件foobar_uwsgi.ini
[uwsgi] # Django-related settings # the base directory (full path) chdir = /home/dmd/project/ENV/mysite # Django's wsgi file module = foobar # process-related settings # master master = true # maximum number of worker processes processes = 10 # the socket (use the full path to be safe socket = /home/dmd/project/ENV/mysite/foobar.sock # ... with appropriate permissions - may be needed # chmod-socket = 664 # clear environment on exit # 這個(gè)配置本來(lái)是true,即退出就刪掉socket,但這會(huì)導(dǎo)致nginx的啟動(dòng)失敗,所以改為false vacuum = false
創(chuàng)文件foobar_nginx.conf
server {
listen 8099;
server_name 127.0.0.1
charset UTF-8;
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log;
client_max_body_size 75M;
location / {
include uwsgi_params;
uwsgi_pass unix:///home/dmd/project/ENV/mysite/foobar.sock; # 用unix socket
# uwsgi_pass 127.0.0.1:8000 # 用TCP socket
uwsgi_read_timeout 2;
}
}
將這個(gè)文件鏈接到/etc/nginx/sites-enabled,這樣nginx就可以看到它了
sudo ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/
啟動(dòng)nginx
sudo service nginx start
啟動(dòng)uwsgi
uwsgi --ini foobar_uwsgi.ini
訪問(wèn)127.0.0.1:8099,如果出現(xiàn)“Hello world”就說(shuō)明下面連接棧是成功的。
the web client <-> the web server <-> the socket <-> uWSGI <-> Python
3.建立整個(gè)連接棧
the web client <-> the web server <-> the socket <-> uwsgi <-> Django
建立django項(xiàng)目
django-admin startproject mysite
在項(xiàng)目的根目錄建立mysite_uwsgi.ini
# myweb_uwsgi.ini file [uwsgi] # Django-related settings socket = mysite.sock # the base directory (full path) chdir = /home/dmd/project/ENV/mysite # Django s wsgi file module = mysite.wsgi # process-related settings # master master = true # maximum number of worker processes processes = 4 # ... with appropriate permissions - may be needed # chmod-socket = 664 # clear environment on exit vacuum = false
在項(xiàng)目根目錄建立mysite_nginx.conf
server {
listen 8099;
server_name 127.0.0.1
charset UTF-8;
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log;
client_max_body_size 75M;
location / {
include uwsgi_params;
uwsgi_pass unix:///home/dmd/project/ENV/mysite/mysite.sock; # 用unix socket
# uwsgi_pass 127.0.0.1:8000 # 用TCP socket
uwsgi_read_timeout 2;
}
location /static {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/dmd/project/ENV/mysite/static/;
}
}
鏈接sudo ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/
運(yùn)行
# 運(yùn)行uwsgi uwsgi --ini mysite_uwsgi.ini # 開(kāi)啟niginx sudo service nginx start
測(cè)試。訪問(wèn) 127.0.0.1:8099 ,如果看到django的頁(yè)面,說(shuō)明成功。
完整的目錄樹(shù)
mysite/ ├── db.sqlite3 ├── manage.py ├── mysite │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── settings.cpython-36.pyc │ │ ├── urls.cpython-36.pyc │ │ └── wsgi.cpython-36.pyc │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── mysite.sock ├── mysite_nginx.conf ├── mysite_uwsgi.ini └── uwsgi_params
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 聊聊Django+uwsgi+nginx服務(wù)器部署問(wèn)題
- django生產(chǎn)環(huán)境搭建(uWSGI+django+nginx+python+MySQL)
- Django+Uwsgi+Nginx如何實(shí)現(xiàn)生產(chǎn)環(huán)境部署
- Nginx+Uwsgi+Django 項(xiàng)目部署到服務(wù)器的思路詳解
- 詳解Ubuntu環(huán)境下部署Django+uwsgi+nginx總結(jié)
- Django uwsgi Nginx 的生產(chǎn)環(huán)境部署詳解
- Centos部署django服務(wù)nginx+uwsgi的方法
- 詳解Django+Uwsgi+Nginx 實(shí)現(xiàn)生產(chǎn)環(huán)境部署
- Django+Nginx+uwsgi服務(wù)器部署
相關(guān)文章
Python實(shí)現(xiàn)初始化不同的變量類型為空值
這篇文章主要介紹了Python實(shí)現(xiàn)初始化不同的變量類型為空值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
python 獲取當(dāng)天凌晨零點(diǎn)的時(shí)間戳方法
今天小編就為大家分享一篇python 獲取當(dāng)天凌晨零點(diǎn)的時(shí)間戳方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
使用Python實(shí)現(xiàn)XLS和XLSX之間的相互轉(zhuǎn)換
在日常工作中,我們經(jīng)常需要處理和轉(zhuǎn)換不同格式的Excel文件,以適應(yīng)不同的需求和軟件兼容性,Excel文件的兩種常見(jiàn)格式是XLS(Excel 97-2003)和XLSX(Excel 2007及以上版本),本文將詳細(xì)介紹如何使用Python在XLS和XLSX格式之間進(jìn)行轉(zhuǎn)換,需要的朋友可以參考下2024-09-09
利用python抓取HTML頁(yè)面數(shù)據(jù)并作可視化數(shù)據(jù)分析
這篇文章主要為大家詳細(xì)介紹了如何利用python抓取HTML頁(yè)面數(shù)據(jù)并作可視化數(shù)據(jù)分析,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下2025-04-04
Python Celery多隊(duì)列配置代碼實(shí)例
這篇文章主要介紹了Python Celery多隊(duì)列配置代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
python讀取文件由于編碼問(wèn)題失敗匯總以及解決辦法
這篇文章主要給大家介紹了關(guān)于python讀取文件由于編碼問(wèn)題失敗匯總以及解決辦法的相關(guān)資料,文件編碼錯(cuò)誤指的是在Python讀取文件的過(guò)程中出現(xiàn)的編碼不匹配的問(wèn)題,需要的朋友可以參考下2023-10-10
python實(shí)現(xiàn)異常信息堆棧輸出到日志文件
今天小編就為大家分享一篇python實(shí)現(xiàn)異常信息堆棧輸出到日志文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
Python 3.x基礎(chǔ)實(shí)戰(zhàn)檢查磁盤可用空間
這篇文章主要為大家介紹了Python 3.x基礎(chǔ)實(shí)戰(zhàn)之檢查磁盤可用空間實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05

