週末趁著加班空閒,找了乙個舊機器,裝了個ubuntu13.04,以後就可以用它來做我在公司的git以及web伺服器,順便在它上面編譯一下android原始碼,哈哈,很爽。
先說web系統,最進一直在搗鼓django,之前用apache2+apache2-python-mod搭了乙個簡易版本的伺服器,用起來感覺不爽,直接換成nginx和uwsgi
其中pip是乙個python的包管理工具,1.6.2
是的版本,這種寫法在bae的requirements.txt中也有體現,比如需要安裝django,可以用==,>,《等比較操作符來選擇版本號。單獨使用uwsgi也可以讓django跑起來,但是它無法作為靜態檔案/static/
以及/media/
的伺服器。因此我們需要配合使用nginx作為web伺服器來處理/static/以及/media/的請求,而它其他的頁面請求都轉交給uwsgi來處理。在django的工程目錄下新建乙個mysite_uwsgi.ini
(名稱可隨意)
內容如下,詳細說明可參考注釋
[uwsgi]# django-related settings
# the base directory (full path)
chdir = /path/to/your/project
# django's wsgi file
module = dijkstra.wsgi
plugin = python
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 5
# the socket
socket = /path/to/your/project
chmod-socket = 666
# clear environment on exit
vacuum = true
根據uid的不同可以設定不同的socket許可權,如果許可權設定不當,uwsgi可能會出現permmision denied的錯誤。
在django工程目錄(與mysite_uwsgi.ini相同)新建乙個mysite_nginx.conf
檔案
檔案內容如下
# dijkstra_nginx.conf把# the upstream component nginx needs to connect to
upstream django
# configuration of the server
server
location /static
# finally. send all non-media requests to the django server
location /
}
uwsgi_params
考到工程目錄下cp /etc/nginx/uwsgi_params /path/to/your/project/
# security warning: don't run with debug turned on in production!嘗試能否訪問localhost:8000,如果出現502 bad gateway,可以重啟機器。debug = false
template_debug = false
allowed_hosts = ['x.x.x.x', 'localhost'] # substitute your machine's ip address or fqdn
Django用Nginx與uwsgi部署伺服器
urls.py from django.views.static import serve url中加入以下配置 url r static p.serve,url r media p.serve,url r views.home 安裝pip3 apt install python3 pip 安裝必備...
通過uwsgi和nginx部署django專案
在linux伺服器上採用uwsgi nginx的方式部署執行。uwsgi負責django專案的python動態解析 nginx負責靜態檔案 以及uwsgi pass到uwsgi。此外,在執行nginx之前,需要先收集django專案的靜態檔案到static目錄。首先,需要在settings.py檔案...
uwsgi和nginx部署Django服務
先用測試方式啟動服務 1.配置好資料庫 3.資料庫遷移 4.啟動服務 python manage.py runserver 0.0.0.0 8000 用uwsgi的方式啟動 解決3個問題 執行uwsgi啟動服務時,用的是python2直譯器,就用python3的直譯器重新裝了,解決參考文件 3.用命...