django+uwsgi+nginx+https
Posted XiaoBoya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django+uwsgi+nginx+https相关的知识,希望对你有一定的参考价值。
uwsgi
在项目的根目录(如/opt/project,和app平级)下建uwsgi.ini这个文件。
[uwsgi] http = 127.0.0.1:8080 # django的启动端口 chdir = /opt/project/ #项目的app下的wsgi module = xxx/xxxx.wsgi #这个就是项目下包含settings那个文件夹下的wsgi文件 socket=/home/deepcam/python/cmdb/uwsgi.sock master = true #启用主进程 processes = 4 #运行进程数 threads = 2 #线程数 enable-threads = True #启用线程 pidfile = uwsgi.pid # 这个可以用来停掉uwsgi
然后在这里记得要把settings里面的ALLOWED_HOSTS改成[‘*‘],在项目的根目录下输入命令:
uwsgi -d --ini uwsgi.ini # 后台启动uwsgi,把-d去掉就不是后台启动了。 uwsgi --stop uwsgi.ipid # 停掉这个uwsgi
这里注意,http的端口号可以随便改,http、chdir、module是必须的。
HTTPS
进入到nginx目录下,如果是使用系统自带软件包安装是/etc/nginx这个文件夹。
cd /etc/nginx/ mkdir ssl cd ssl openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr cp server.key server.key.org openssl rsa -in server.key.org -out server.key openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
这一套是建立密钥,如果是HTTP的话这一套就不用搞了
NGINX
修改 nginx.conf这个文件,在http里面加入如下配置:
server { #listen 80; listen 443; server_name localhost; charset utf-8; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { include uwsgi_params; uwsgi_connect_timeout 30; client_max_body_size 75M; }
}
这里面的server_name是访问的域名(可以是ip),比如127.0.0.1 或者是 www.xxxxx.com
nginx # 启动nginx nginx -s reload # 平滑重启 nginx -t # 检查配置文件是否ok
以上是关于django+uwsgi+nginx+https的主要内容,如果未能解决你的问题,请参考以下文章
Django + uwsgi + nginx +让加密无法访问https