在開始配置之前,需要將整個項目文件拷貝一份,然后移入你想要的放置的目錄中。
創建django項目,一、Django配置
1、settings.py配置
Python django、復制全局settings.py配置文件,創建一個副本命名為/pro_settings.py,修改DEBUG為False。
DEBUG =False#填寫你自己的ip和域名
ALLOWED_HOSTS = [“ 192.168.216.137","localhost","127.0.0.1"]
#此處設置可以訪問服務器的IP地址,*為允許所以地址
第一次部署的時候,最好先不要修改,否則出錯的時候不容易排錯。
2、wsgi.py配置
#修改pro_mysite/wsgi.py文件
importosfrom django.core.wsgi importget_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'peo_mysite.pro_settings')
application= get_wsgi_application()
3、生成requirements.py文件(最好在根目錄下單獨建立一個目錄,用于存放這些文件)
項目部署文件肯定也是運行在python環境下的,那么勢必需要依賴的包文件,所以也需要為部署的項目重新建立一個運行的虛擬環境,并安裝項目運行時所依賴的包、模塊,所以需要先進入開發時的虛擬環境,將安裝的包、模塊導出來,安裝在項目部署的虛擬環境中(注意:有的包、模塊不是我們通過pip install 從源地址安裝的,所以在導出時,需要將其刪除,通過源文件安裝。)
通過>>> pip freeze > requirements.txt
將安裝的第三方包、模塊導出到requirements.txt文件,放在項目中,供部署時安裝。
上面的fdfs-client-py==1.2.6不是通過源地址安裝的,而是直接通過源文件安裝的,所以需要將這個模塊刪除。
通過>>> pip install requirements.txt
安裝從源地址安裝的第三方包、模塊(在此之前,需要創建項目運行虛擬環境),
安裝完成后,再安裝通過源文件安裝的第三方包、模塊,比如我的fdfs-client-py==1.2.6模塊
兩類包、模塊都安裝完成后,接下來就是安裝django項目運行的服務器模塊了(注意:django項目部署時,與我們開發時運行的方式不太一樣;開發時,直接使用命令python manage.py runserver 0:8000就可以了,但是部署時,是運行在一個WSGI服務器上的,此時只需要相關配置,再運行wsgi服務器,就可以起啟動項目了。)
通過>>> pip install uwsgi
安裝WSGI服務器
可以寫一個test.py文件測試uwsgi是否安裝成功
通過>>> uwsgi --http :8000 --wsgi-file test.py
這個命令表示WSGI服務器運行在8000端口,一旦接收到請求,就會將解析請求,并調用test.py文件里的application函數,返回一個響應,
uwsgi配置(創建uwsgi_conf_ini配置文件)
[uwsgi]#使用nginx連接時使用,Django程序所在服務器地址#選擇內網IP和端口
socket=172.26.149.79:8000
#項目根目錄
chdir=/root/django-projects/dj32_pro/dj32_pro#項目中wsgi.py文件的相對目錄
wsgi-file=dj32_test/wsgi.py#進程數
processes=2
#線程數
threads=2
#uwsgi服務器的角色
master=True#存放進程編號的文件
pidfile=uwsgi.pid#日志文件,因為uwsgi可以脫離終端在后臺運行,日志看不見。以前的runserver是依賴終端的
daemonize=logs/uwsgi.log#指定虛擬環境所在目錄,不能填相對目錄
virtualenv=/root/python-venv/dj32
要注意上述配置標紅的地方,一定要嚴格遵照執行,
socket:表示項目運行的IP地址和端口號,一定要是內網地址;
chdir:表示項目的根目錄(使用pwd命令獲取);
wsgi-file:表示項目中wsgi.py文件的位置,在主APP下;
daemonize:記錄項目運行的日志,是相對于這個配置文件的位置,不是相對于根目錄,切記;
virtualenv:表示項目運行的虛擬環境的絕對路徑
啟動uwsgi(進入.ini配置文件所在的目錄,啟動uwsgi服務)
啟動uwsgi>>> uwsgi --ini uwsgi_conf.ini
停止uwsgi>>> uwsgi --stop uwsgi.pid
1、安裝nginx(根據自己的系統選擇合適的nginx配置,以Centos為例)
>>> yum -y install nginx
2、啟動nginx,查看啟動狀態,如果啟動狀態為active,則代表啟動成功
3、測試是否安裝成功
nginx默認運行在80端口,可以直接在瀏覽器中訪問,如果有顯示,表示在安裝成功,
4、nginx常用命令(如果不是root用戶,需要在前面加sudo)
停止nginx服務器>>>?systemctl stop nginx
啟動nginx服務器>>> systemctl start nginx
重啟nginx服務器>>> systemctl restart nginx
重載配置而不關閉>>> systemctl reload nginx
設為開機自啟動>>>> systemctl enable nginx
取消開機自啟動>>>> systemctl disable nginx
5、nginx配置(找到配置文件的位置,修改配置文件,配置文件的位置,上面已經標出來了)
/etc/nginx/nginx.conf
upstream dj32_pro {#此處為uwsgi運行的ip地址和端口號
server 172.26.149.79:8000;
}
server {#監聽端口
listen 80;#服務器域名或者ip地址
server_name www.blogcloud.info;#編碼
charset utf-8;#文件最大上傳大小
client_max_body_size 75M;#媒體文件
location /media {
alias/home/pyvip/pro_mysite/media;
}#靜態文件
location /static {
alias/home/pyvip/pro_mysite/static;
}#主目錄
location /{
uwsgi_pass pro_mysite;
include/etc/nginx/uwsgi_params;
}
}
#修改sudo vim /etc/nginx/nginx.conf#第一行開頭修改用戶,將www-data改為你當前的用戶 創建 Nginx 運行使用的用戶 www:
user root;
user后面跟你自己主機的用戶名
具體看一下nginx配置的全部內容
具體看一下我們配置好的配置文件
測試nginx配置文件是否正確>>>?nginx -t -c /etc/nginx/nginx.conf
如果打印如下內容,就表示成功了:
重新加載配置>>>?nginx -s reload -c /etc/nginx/nginx.conf
詳細了解nginx配置正向代理、反向代理、負載均衡、動靜分離相關內容請看(
補充:如果遇到啟動uwsgi和nginx時,啟動失敗,多半是端口占用的問題,那就解除占用
查看指定端口>>> netstat -ap | grep 8000
查看端口>>>>>>netstat -a
殺死進程>>>>>>pkill -9 PID
查看某個程序的進程>>> ps -aux | grep nginx
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态