項目部署是一個比較大的工程,但這是筆者最喜歡的一個環節,由於在部署過程當中,會遇到不少疑難問題,這些問題能促使我學到不少不少的技術。html
項目部署,顧名思義,就是將本身的程序存放到遠程服務器上面,讓全世界的網友都能訪問到。在部署以前,咱們須要提早準備好一些部署的知識,包括購買服務器、安裝服務器軟件、服務器配置、等等。node
筆者專門購買了服務器來部署咱們的視頻播放網站,爲了不備案,筆者購買了國外的服務器。python
購買服務器的地方有不少,國內有阿里雲、騰訊雲、百度雲等,國外有aws、bwh、Linode等等。若是你是學生的話,建議購買 阿里雲 的服務器,由於阿里雲有學生認證,打折幅度很是大。mysql
操做系統建議選擇ubuntu系統nginx
筆者購買的是aws服務器,操做系統是Ubuntu16.04git
須要安裝的軟件有nginx、mysql、python、uwsgi、django,另外還有項目的依賴庫。github
在Ubuntu系統安裝nginx很是簡單,只需一行命令sql
sudo apt-get install nginx
複製代碼
nginx的經常使用命令有django
sudo service nginx start # 啓動nginx
sudo service nginx restart # 重啓nginx
sudo service nginx stop # 關閉nginx
複製代碼
安裝mysqlubuntu
sudo apt-get install mysql-server
複製代碼
啓動mysql
sudo service mysql start
複製代碼
安裝uwsgi
pip3 install uwsgi
複製代碼
安裝django
pip3 install Django
複製代碼
git clone https://github.com/geeeeeeeek/videoproject.git
複製代碼
項目裏面 uwsgi.ini 爲配置文件
[uwsgi]
chdir = /var/www/videoproject
module = videoproject.wsgi
master = true
processes = 2
socket = 127.0.0.1:8001
chmod-socket = 664
uid = www-data
gid = www-data
vacuum = true
daemonize = %(chdir)/uwsgi.log
複製代碼
nginx就是經過該配置文件和uwsgi通訊的,uwsgi是以socket方式運行。
而後運行該配置
uwsgi --ini uwsgi.ini
複製代碼
須要配置nginx 在/etc/nginx/sites-enabled/下新建配置文件video.conf,並寫入
upstream django {
server 127.0.0.1:8001;
}
server {
listen 80;
server_name yourhost.com; # 配置成你本身的域名
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443;
server_name yourhost.com; # 配置成你本身的域名
ssl on;
ssl_certificate /home/ubuntu/1_v.mypython.me_bundle.crt; # 配置成你本身的https證書
ssl_certificate_key /home/ubuntu/2_v.mypython.me.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location /static/ {
alias /var/www/videoproject/static/;
}
location /upload/ {
alias /var/www/videoproject/upload/;
}
location / {
include uwsgi_params;
uwsgi_pass django;
}
}
複製代碼
nginx 與 uwsgi通訊方式: server 127.0.0.1:8001
最後重啓nginx便可。