J’essaie d’installer Discourse sur un sous-domaine.
Mon domaine principal fonctionne avec WordPress, qui a été construit en utilisant docker-compose.
Le sous-domaine et le domaine utilisent le même serveur VPS.
Malheureusement, NGIX ne démarre pas. Lorsque j’exécute la commande systemctl status nginx, le message suivant apparaît :
× nginx.service - Un serveur web haute performance et un serveur proxy inverse
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2024-03-08 07:06:36 CST; 1h 14min ago
Docs: man:nginx(8)
Process: 27329 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 27330 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
CPU: 42ms
Mar 08 07:06:33 vmi1695712.contaboserver.net systemd[1]: Starting Un serveur web haute performance et un serveur proxy inverse...
Mar 08 07:06:33 vmi1695712.contaboserver.net nginx[27330]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)
Mar 08 07:06:34 vmi1695712.contaboserver.net nginx[27330]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)
Mar 08 07:06:34 vmi1695712.contaboserver.net nginx[27330]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)
Mar 08 07:06:35 vmi1695712.contaboserver.net nginx[27330]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)
Mar 08 07:06:35 vmi1695712.contaboserver.net nginx[27330]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)
Mar 08 07:06:36 vmi1695712.contaboserver.net nginx[27330]: nginx: [emerg] still could not bind()
Mar 08 07:06:36 vmi1695712.contaboserver.net systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
Mar 08 07:06:36 vmi1695712.contaboserver.net systemd[1]: nginx.service: Failed with result 'exit-code'.
Mar 08 07:06:36 vmi1695712.contaboserver.net systemd[1]: Failed to start Un serveur web haute performance et un serveur proxy inverse.
Mon fichier de site pour Discourse :
# Default server configuration
#
server {
# listen 80 default_server;
# listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name forum.ictsharks.com;
location / {
proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
# fastcgi_pass unix:/run/php/php7.4-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
Je l’ai vérifié plusieurs fois, mais je n’arrive pas à trouver l’origine de l’erreur.
Désolé, je suis débutant avec Linux / NGINX / Docker. Tout conseil serait apprécié. Merci.
Les instructions suggèrent de les commenter, alors je l’ai fait :
## quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consultez https://meta.discourse.org/t/17247 pour plus de détails
expose:
# - "80:80" # http
# - "443:443" # https
Je comprends les enregistrements DNS, https et les certificats. Seul le reste m’est nouveau.
Ne vous inquiétez pas, je sais comment utiliser Google et j’apprends vite
Comme je l’ai indiqué, je pense que l’autre NGIX (celui pour wordpress) fonctionne dans un conteneur avec MySQL et Wordpress.
Voici ce que j’obtiens en exécutant la commande docker ps :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ca4cbec2c88 local_discourse/app "\"/sbin/boot\"" 51 minutes ago Up 15 minutes app
4a3ebdd9f5b5 nginx:1.15.12-alpine "\"nginx -g 'daemon of..." 20 hours ago Up 15 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp webserver
42c4211a2fb6 wordpress:5.1.1-fpm-alpine "\"docker-entrypoint.s..." 2 days ago Up 15 minutes 9000/tcp wordpress
5b588a7435ad mysql:8.0 "\"docker-entrypoint.s..." 2 days ago Up 15 minutes 3306/tcp, 33060/tcp db
C’est pourquoi le nginx externe ne peut pas démarrer, car les ports sont occupés par celui interne. Vous devez probablement arrêter ce conteneur et transférer sa configuration pour WordPress vers la couche nginx externe.
De plus, ce sont des conteneurs séparés, le nginx est séparé de MySQL et WordPress.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ca4cbec2c88 local_discourse/app « /sbin/boot » 3 heures ago Up 2 heures app
42c4211a2fb6 wordpress:5.1.1-fpm-alpine « docker-entrypoint.s… » 2 jours ago Up 2 heures 9000/tcp wordpress
5b588a7435ad mysql:8.0 « docker-entrypoint.s… » 2 jours ago Up 2 heures 3306/tcp, 33060/tcp db