天天看點

centos7下結合nginx與uwsgi,部署django項目

前一段時間在阿裡雲買了一個雲伺服器,嘗試着部署了一下django項目。過程還算順利,下面介紹介紹具體操作。

安裝軟體

我們第一步需要安裝需要用到的軟體,centos使用yum安裝軟體,在部署時需要用到的軟體有MySQL、nginx、Python3.6。

MySQL安裝

#下載下傳mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

#安裝mysql-community-release-e17-5.noarch.rpm
rpm -ivh mysql-community-release-e17-5.noarch.rpm

#安裝mysql
yum install mysql-server
           

Python3.6安裝

我們使用pyenv來管理我們的Python版本。是以,需要先安裝pyenv。

安裝pyenv之前要先安裝好依賴的庫檔案。

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
           

接下來安裝pyenv。

mkdir ~/.pyenv
git clone git://github.com/yyuu/pyenv.git ~/.pyenv  
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc  
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc  
echo 'eval "$(pyenv init -)"' >> ~/.bashrc  
exec $SHELL -l 
           

下面我們就可以使用pyenv來安裝python了。

pyenv install 3.6.4 
           

我們也可以使用pyenv來将3.6.4設定為預設版本。

pyenv global 3.6.4
           

nginx安裝

#安裝nginx需要的庫
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

#安裝nginx
yum install nginx
           

項目配置

配置uwsgi

将項目上傳到雲伺服器上,上傳可以使用WinSCP這個軟體。

使用pip安裝uwsgi庫。

pip install uwsgi
           

在項目根目錄下建立一個blog.ini檔案。因為我的項目是一個部落格,是以就建立了這樣的一個檔案名,你也可以修改檔案名。接下來是重點,在檔案中輸入以下代碼

[uwsgi]
#使用者名,不要用root,你可以建立一個使用者,在此處寫上使用者名。
uid = jin
http = 127.0.0.1:8001
chmod-socket = 666
#項目根目錄
chdir = /home/blog/blog/
#wsgi.py檔案相對根目錄所在位置
wsgi-file = blog/wsgi.py
touch-reload = /blog/blog
py-auto-reload = 1
processes = 4
threads = 2
           

配置nginx

進入nginx所在目錄: 'cd /etc/nginx/conf.d',此時目錄中會有一個default.conf檔案,删除該檔案,建立新檔案并編輯:'vim blog_nginx.conf'

server {
	listen 80 default_server;
        #此處寫你的域名
	server_name www.blog.com blog.com;
	charset utf-8;
	client_max_body_size 75M;
	root /home/blog;

	#靜态資源
	location /static {
		alias /home/blog/blog_static;
	
	}

	location /media {
		alias /home/blog/blog/media;
	}

    
	location / {
		include /etc/nginx/uwsgi_params;
		proxy_pass http://127.0.0.1:8001;
	
	}
}
           

啟動

啟動mysql

systemctl start mysqld
           

啟動nginx伺服器

systemctl start nginx
           

啟動uwsgi

進入剛才建立blog.ini的目錄,終端輸入'uwsgi blog.ini'。

此時在網站中輸入你的域名,就能夠看到你的項目了。

注意一點,django項目中靜态資源的處理,可使用 'python manage.py collectstatic'指令。若想要結束uwsgi服務,可以使用'ps aux |grep uwsgi'檢視程序,然後使用'kill -9 程序号'來結束uwsgi程序。

繼續閱讀