1. 程式人生 > >Mxonline在阿里雲伺服器上的部署(uwsgi nginx)

Mxonline在阿里雲伺服器上的部署(uwsgi nginx)

我的專案結構

 

 

1. 執行`python manage.py migrate`命令,將遷移檔案,對映到資料庫中,建立相應的表。

進入資料庫 use mxonline資料庫     source /home/Mxonline3-master/mxonline.sql  匯入資料


2. 執行`python manage.py runserver 0.0.0.0:8000`,然後在你自己電腦上,在瀏覽器中輸入`http://你的伺服器的ip地址:8000/`,訪問下網站所有頁 面,確保所有頁面都沒有錯誤。
3. 設定`ALLOW_HOST`為你的域名,以及ip地址。
4. 設定`DEBUG=False`,避免如果你的網站產生錯誤,而將錯誤資訊暴漏給使用者。

 

### 安裝uwsgi
1. uwsgi是一個應用伺服器,非靜態檔案的網路請求就必須通過他完成,他也可以充當靜態檔案伺服器,但不是他的強項。uwsgi是使用python編寫的,因此通過`pip install uwsgi`就可以了。(uwsgi必須安裝在系統級別的Python環境中,不要安裝到虛擬環境中)。
2. 使用命令`uwsgi --http :8000 --module zhiliaoketang.wsgi --vritualenv=/root/.virtualenvs/django-env-py2`。用`uwsgi`啟動專案,如果能夠在瀏覽器中訪問到這個頁面,說明`uwsgi`可以載入專案了。

### 編寫uwsgi配置檔案:
在專案的路徑下面,建立一個檔案叫做mxonline.ini的檔案

寫入配置:

[uwsgi]
# socket檔案
socket = 127.0.0.1:8000
# 專案的路徑
chdir = /home/Mxonline3-master
# Django的wsgi檔案
module = Mxonline3.wsgi
# 程序相關的設定
# 主程序
master = true
# 最大數量的工作程序
processes = 10
# 設定socket的許可權
chmod-socket = 664
# 退出的時候是否清理環境
vacuum = true
buffer-size = 65536
# Python虛擬環境的路徑
home            = /root/.virtualenvs/django_env

然後使用命令`uwsgi --ini mxonline.ini`,看下是否還能啟動這個專案。

### 安裝nginx:
1. nginx是一個web伺服器。用來載入靜態檔案和接收http請求的。通過命令`sudo apt install nginx`即可安裝。
2. `nginx`常用命令:
    * 啟動nginx:service nginx start
    * 關閉nginx:service nginx stop
    * 重啟nginx:service nginx restart

### 編寫nginx配置檔案:

在/etc/nginx/conf.d下新建一個檔案  mxonline.conf

寫入配置:

 upstream django {
        server 127.0.0.1:8000;
 }
        server {
          listen 80;
          server_name www.donghao.club;
          server_name 47.107.66.196;
          charset utf-8;
          client_max_body_size 75M;
          location /static {
                alias /home/Mxonline3-master/static;
                }
                location / {
                uwsgi_pass django;
                include /etc/nginx/uwsgi_params;
                        }
        }

寫完配置檔案後,為了測試配置檔案是否設定成功,執行命令:`service nginx configtest`,如果不報錯,說明成功。
每次修改完了配置檔案,都要記得執行`service nginx restart`。

回到專案->使用命令   uwsgi mxonline.ini

這樣專案就執行起來了

值得注意的是:由於我是用的阿里雲伺服器,我們需要開放25埠,用來發送郵件,不然會發送超時。

這樣就部署成功了,當然你也可以用supervisor來對程序管理。

mxonline 線上地址:http://www.donghao.club/

Github:https://github.com/1417766861/Mxonline3.6