我有一个问题,我正在构建一个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
任何人对如何实现这样的事情都有任何想法?
谢谢
我是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
从我最初的研究来看,这与模板有关.我没有使用任何模板,所以我不知道为什么会这样.
任何人都可以帮我解决这些问题吗?