小编sgp*_*rne的帖子

Nginx - 仅在SSL证书存在时启用SSL

我有一个问题,我正在构建一个nginx反向代理,用于指向不同url路径上的多个微服务.

该系统完全基于docker,因此相同的环境用于开发和生产.这在安装SSL时会给我带来问题,因为SSL证书只能在生产中使用,因此当我使用SSL配置NGINX时,开发环境不再有效,因为ssl证书不存在.

这是我的conf文件的相关部分 -

server {
 listen 80;
 listen 443 default_server ssl;

 server_name          atvcap.server.com;
 ssl_certificate      /etc/nginx/certs/atvcap_cabundle.crt;
 ssl_certificate_key  /etc/nginx/certs/atvcap.key;
 ...
}
Run Code Online (Sandbox Code Playgroud)

但是在开发模式下运行我的应用程序时会抛出以下内容 -

nginx:[emerg] BIO_new_file("/ etc/nginx/certs/atvcap_cabundle.crt")失败(SSL:错误:02001002:系统库:fopen:没有这样的文件或目录:fopen('/ etc/nginx/certs/atvcap_cabundle .crt','r')错误:2006D080:BIO例程:BIO_new_file:没有这样的文件)

如果"/etc/nginx/certs/atvcap_cabundle.crt"可用,是否可以仅打开SSL?

我曾经尝试过类似下面的内容 -

if (-f /etc/nginx/certs/atvcap_cabundle.crt) {
  ssl_certificate      /etc/nginx/certs/atvcap_cabundle.crt;
  ssl_certificate_key  /etc/nginx/certs/atvcap.key;
}
Run Code Online (Sandbox Code Playgroud)

但是这引起了以下错误 -

nginx:[emerg]"ssl_certificate"指令在/etc/nginx/conf.d/default.conf中不允许这样做:7

任何人对如何实现这样的事情都有任何想法?

谢谢

ssl https nginx

18
推荐指数
2
解决办法
1792
查看次数

如何修复Django 1.9中的弃用警告

我是Django Framework的新用户.我目前正在使用django_rest_framework构建REST API.启动我的服务器时,我收到了弃用警告,我不知道如何修复.

RemovedInDjango110Warning:'get_all_related_objects是一个已弃用的非官方API.你可以用opts.get_all_related_objects()中的关系'get_fields()'替换它

以上是第一个.有谁知道如何解决这个问题.我现在在API中的所有内容都是使用内置ModelViewSet的标准休息调用,我也用自己的方式覆盖了默认的身份验证和用户系统,所以我不知道为什么我会收到这些警告,因为我一直在使用Django 1.9从一开始.

我也得到了这个:

RemovedInDjango110Warning:必须使用dict调用render(),而不是RequestContext

从我最初的研究来看,这与模板有关.我没有使用任何模板,所以我不知道为什么会这样.

任何人都可以帮我解决这些问题吗?

python django rest django-views django-rest-framework

4
推荐指数
1
解决办法
2080
查看次数

标签 统计

django ×1

django-rest-framework ×1

django-views ×1

https ×1

nginx ×1

python ×1

rest ×1

ssl ×1