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.