我们有和app将自动生成的SSL证书上传到我们的NGINX负载均衡器。有一次,我们遇到了这个问题"不良证书"上传,然后执行自动nginx reload
,我们的服务器离线一段时间导致我们的服务器域出现DNS问题(未找到DNS)。给我们的客户带来巨大的停机时间。
然而,在我们的应用程序中,允许应用程序上传SSL cerficate并且我们的后端服务器自动安装它是一个功能/功能,有没有办法告诉忽略错误的NGINX conf
文件和crt/key
完全一样? 查看之前的日志,我记得在事件发生前我看到过SSL握手错误。
以下是我们的主nginx-jelastic.conf
的样子:
######## HTTP SECTION PROTOTYPE ########
http {
server_tokens off ;
### other settings hidden for simplicity
include /etc/nginx/conf.d/*.conf;
}
######## TCP SECTION PROTOTYPE ########
所以我在想,如果nginx可以忽略位于那里的所有不良NGINX配置文件。以下是在conf.d
文件夹中上传内容的示例:
#
#
server {
listen 443 ssl;
server_name www.example-domain.com;
ssl_certificate /var/lib/nginx/ssl/www.example-domain.com.crt;
ssl_certificate_key /var/lib/nginx/ssl/www.example-domain.com.key;
access_log /var/log/nginx/localhost.access_log main;
error_log /var/log/nginx/localhost.error_log info;
proxy_temp_path /var/nginx/tmp/;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
set $upstream_name common;
include conf.d/ssl.upstreams.inc;
proxy_pass http://$upstream_name;
proxy_next_upstream error;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Host $http_host;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-URI $uri;
proxy_set_header X-ARGS $args;
proxy_set_header Refer $http_refer;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
由于某种原因,配置中指示的证书和密钥可能是错误的,那就是破坏nginx服务器并且由于我们的域通过A记录指向该服务器,如果nginx作为DNS失败则完全是灾难问题发生了,DNS可能需要24-48小时才能恢复。