我正在为django应用程序构建一个docker容器,它使用nginx和uwsgi。对于数据库,应用程序使用的是mysql,它位于不同的容器中,并且它们都与docker-compose.yml
文件链接:
version: '2'
services:
mysql:
image: mysql:latest
environment:
-MYSQL_DATABASE: TheDatabase
-MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
-MYSQL_USER: TheUsername
-MYSQL_PASSWORD: ThePassword
ports:
-"3306:3306"
django:
build: .
volumes:
- .:/app
ports:
- "443:443"
- "8000:8000"
links:
- mysql
我使用的是SSL证书,它使用OpenSSL进行自签名,并包含在nginx.conf文件中。问题是,每次运行容器并尝试以超级用户身份登录时,我都会收到以下错误 504 Timed Out 。在经过深思熟虑之后,我得出的结论是,问题在于与mysql数据库的连接。我确实输入了mysql容器并看到数据库在那里,在检查表之后,我看到所有表都已创建。但是,在阅读完日志后,我注意到以下一行:
[警告]由于以下SSL库错误而无法设置SSL:如果没有证书和私钥,SSL上下文将无法使用。
当我使用来自docker hub的现成图像时,我应该如何添加SSL密钥和证书?这就是为什么我得到 504超时错误的原因?我也收到以下3个警告:
[警告]' db' entry' sys mysql.sys@localhost'在--skip-name-resolve模式中被忽略。
[警告]' proxies_priv'进入' @ root @ localhost'在--skip-name-resolve模式中被忽略。
[警告]' tables_priv' entry' sys_config mysql.sys@localhost'在--skip-name-resolve模式中被忽略
答案 0 :(得分:0)
“如果您希望服务器能够使用自动支持进行部署 对于安全连接,请使用mysql_ssl_rsa_setup实用程序进行创建 默认的SSL和RSA文件:
shell> mysql_ssl_rsa_setup
有关更多信息,请参见第4.4.5节“mysql_ssl_rsa_setup - 创建 SSL / RSA文件“。
只有MySQL企业版服务器才会在 - 初始化时为您创建证书。