使用Nginx来代替django自带服务器

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的)


大功告成!!!!


image.png

image.png


注意  有时候上传文件的时候会出现413错误,也是因为上传文件大小的限制


所以在这里我们用一个东西来控制


client_max_body_size 1024M;

留下您的评论

回复列表:

    god发表于 Jan. 15, 2019, 4 p.m.

注意一点: 就是在最后的时候一定要加上 --insecure

By王炳宁 on Jan. 15, 2019 | 类别 Python

关于本站