将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安装到哪里了
【超级详细】在Centos7服务器上部署Django项目概览 - 我这里进入 /etc/nginx 目录
【超级详细】在Centos7服务器上部署Django项目概览 - 执行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