J'obtiens l'erreur suivante lorsque j'exécute docker-compose up:
version: '3' services: backend: build: ./nginx depends_on: - db - redis working_dir: /var/www volumes: - ../../src:/var/www ports: - 80:80 ... ...
Voici mon Dockerfile pour nginx:
fastcgi_cache_path /dev/shm levels=1:2 keys_zone=laravel:100m; fastcgi_cache_key "$scheme$request_method$host$request_uri$query_string"; server { listen 80 default_server; root /var/www/public; index index.php index.html; client_max_body_size 5M; ... ...
default.conf:
FROM nginx COPY nginx.conf /etc/nginx/conf.d/default.conf
docker-compose.yml:
backend_1_a5b5a2caf6fc | 2019/04/28 21:40:49 [emerg] 1#1: no "ssl_certificate" is defined for the "listen ... ssl" directive in /etc/nginx/conf.d/default.conf:4 backend_1_a5b5a2caf6fc | nginx: [emerg] no "ssl_certificate" is defined for the "listen ... ssl" directive in /etc/nginx/conf.d/default.conf:4 ... ... production_backend_1_a5b5a2caf6fc exited with code 1
3 Réponses :
Cela signifie que vous n'avez pas configuré correctement ssl (il vous manque un certificat de serveur). Puisque vous avez mappé le port 80 et non 443 dans votre docker-compose, je suppose que vous n'allez pas utiliser SSL.
Supprimez simplement la ligne suivante dans votre nginx.conf
pour désactiver ssl:
listen 443 ssl http2;
assurez-vous de reconstruire et de redémarrer votre conteneur nginx.
avez-vous reconstruit le conteneur? veuillez vérifier que votre configuration est en place. vous pouvez vider la configuration actuelle de nginx avec nginx -T
(vous devez être dans le conteneur). y a-t-il un SSL?
Btw. L'erreur indique où se trouve la mauvaise configuration ssl. L'erreur montre-t-elle le même fichier / ligne qu'avant?
On dirait que la reconstruction à plusieurs reprises a résolu le problème. Merci. Je ne sais pas pourquoi la première reconstruction n'a pas fonctionné.
Avez-vous un autre serveur en écoute sur le port 443.Essayez de supprimer tous les liens symboliques de / etc / nginx / sites-enabled sauf celui-ci que vous voulez faire fonctionner
Mais, si quelqu'un a besoin d'utiliser SSL, cette erreur signifie que votre section serveur
ne contient pas les déclarations ssl_certificate
et ssl_certificate_key
. Vous devez avoir un fichier .crt
et un .key
pour fonctionner avec ssl.
Il devrait ressembler à
server { listen 80; listen 443 default_server ssl; ssl_certificate /etc/nginx/certs/default.crt; ssl_certificate_key /etc/nginx/certs/default.key; ... other declarations }
Partagez tout le fichier
default.conf
.