Nginx是一个非常小的很方便的服务器。
django自带的服务器,总是无法响应。弄一段时间就得重启一下,很麻烦。
1)django自带的服务器。
如果用ssl,就这样子
python manage.py runsslserver 0.0.0.0:443 --certificate ssl-key/1709927_www.bingning.wang_nginx/1709927_www.bingning.wang.pem --key ssl-key/1709927_www.bingning.wang_nginx/1709927_www.bingning.wang.key
这样访问的话就是直接是https并且认证过了,那个cert和key是你自己申请的。
同样使用这种东西,需要在setting里面做如下设置:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'sslserver',
'blog',
'research',
'DjangoUeditor',
'werkzeug_debugger_runserver',
'django_extensions',
'haystack',
)
并且在上面加上:
SECURE_SSL_REDIRECT = True
这样就可以了。
2)nginx服务器
首先安装 nginx
yum install nginx
然后配置这个服务器
vim /etc/nginx/nginx.conf
server {
listen 80;
server_name bingning.wang;
return 301 https://bingning.wang$request_uri;
}
server {
listen 443;
allow all;
ssl on;
server_name localhost;
ssl_certificate /root/program/mysites/214059109840058.pem;
ssl_certificate_key /root/program/mysites/214059109840058.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;
ssl_prefer_server_ciphers on;
access_log /root/program/mysites/nginx.access.log;
error_log /root/program/mysites/nginx.error.log;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# this prevents hidden files (beginning with a period) from being served
}
这样子就行了,主意第一个server是把所有http的请求映射到https上面。
然后
service nginx restart
然后,我们再开一个界面,和平常那样的启动django就行
python manage.py runserver 0.0.0.0:8080 --insecure
最后一个参数保证了一些static文件可以被找到(其实就是ueditor的)
大功告成!!!!
注意 有时候上传文件的时候会出现413错误,也是因为上传文件大小的限制
所以在这里我们用一个东西来控制
client_max_body_size 1024M;
回复列表:
god发表于 Jan. 15, 2019, 4 p.m.
注意一点: 就是在最后的时候一定要加上 --insecure