天天看點

【超級詳細】在Centos7伺服器上部署Django項目概覽

将Django項目部署到阿裡雲的輕量伺服器(包含nginx的https配置

  • 概覽
    • 準備工作
    • 配置uwsgi
    • 配置nginx

概覽

準備工作

  1. 安裝uwsgi
pip install uwsgi
           

2.安裝Nginx

yum  install nginx
           

配置uwsgi

1.現在你的django項目下面建立 以你項目名命名的.xml檔案,并寫入如下内容:

<uwsgi>    
   <socket>127.0.0.1:8000</socket><!-- 内部端口,自定義 --> 
   <chdir>/opt/wwwroot/MinProApi/</chdir><!-- 項目路徑 -->            
   <module>MiProApi.wsgi</module> 
   <processes>4</processes> <!-- 程序數 -->     
   <daemonize>uwsgi.log</daemonize><!-- 日志檔案 -->
</uwsgi>
           

2.編輯完成之後執行如下指令

uwsgi -x yourProjectName.xml
           

3.此時uwsgi就配置完畢了

配置nginx

  1. 先執行whereis nginx檢視nginx安裝到哪裡了
    【超級詳細】在Centos7伺服器上部署Django項目概覽
  2. 我這裡進入 /etc/nginx 目錄
    【超級詳細】在Centos7伺服器上部署Django項目概覽
  3. 執行vim nginx.conf開始編輯nginx.conf檔案
  4. 具體修改過程如下:
server {
        listen        443 ssl;
        server_name  這裡填你網站綁定的域名;
        ssl_certificate your.pem;#填寫你的證書路徑
        ssl_certificate_key your.key;#填寫你的密鑰路徑
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#這裡表示使用的加密套件的類型
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#表示使用的TLS協定類型
        ssl_prefer_server_ciphers on;
        charset UTF-8;

        client_max_body_size 75M;

       # root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8000;#表示443端口指向本地的8000端口
           uwsgi_param UWSGI_SCRIPT MinProApi.wsgi;#這個填寫項目名.wsgi(至于為什麼要這樣寫我也暫時沒有弄懂)
           uwsgi_param UWSGI_CHDIR /opt/wwwroot/MinProApi;#填寫你項目的路徑
        }


           

5.完成上面的配置我們先執行./nginx -t指令檢查相關配置是否有錯,如果沒有就執行以下指令重新開機nginx

./nginx -s reload
           

這時候我們就可以通過https://加上你的域名進而通路你的網站了,但是這樣的壞處是每次都要輸入https://而不是直接輸入域名來執行對網站的通路。

是以我們還要在nginx.conf中添加上如下的内容:

server{
      listen 80;
      server_name 你的域名;#這裡必須是證書綁定的域名
      rewrite ^/(.*) https://你的域名/$1 permanent;#将所有http請求通過rewrite重定向到https
}

           

添加完如上的内容之後,重新開機nginx後,我們就可以直接通過域名或者ip通路自己的網站了(happy.gif)

6.對了為了友善新手上面添加的兩個server在nginx.conf中的關系如下(誰先誰後沒關系):

server{
}
server{
}
           

7.最後本菜狗想說,由于本人能力不足如有錯誤還要請多多指正啊xdm