将Django項目部署到阿裡雲的輕量伺服器(包含nginx的https配置
- 概覽
-
- 準備工作
- 配置uwsgi
- 配置nginx
概覽
準備工作
- 安裝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
- 先執行whereis nginx檢視nginx安裝到哪裡了
- 我這裡進入 /etc/nginx 目錄
- 執行vim nginx.conf開始編輯nginx.conf檔案
- 具體修改過程如下:
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