Ich versuche, Discourse auf einer Subdomain zu installieren.
Meine Hauptdomain läuft mit WordPress, das mit docker-compose erstellt wurde.
Die Subdomain und die Domain verwenden denselben VPS-Server.
Leider kann NGIX nicht gestartet werden. Wenn ich den Befehl systemctl status nginx ausführe, erscheint folgende Meldung:
× nginx.service - Ein Hochleistungs-Webserver und Umkehrproxy
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 Ein Hochleistungs-Webserver und Umkehrproxy...
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 Ein Hochleistungs-Webserver und Umkehrproxy.
Meine Site-Datei für 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;
#}
}
Ich habe es mehrmals überprüft, aber ich kann den Fehler nicht finden.
Entschuldigung, ich bin ein Anfänger mit Linux / NGINX / Docker. Jeder Rat wäre willkommen. Danke.
Die Anweisungen schlagen vor, sie zu kommentieren, also habe ich das getan:
## welche TCP/IP-Ports sollte dieser Container verfügbar machen?
## Wenn Sie möchten, dass Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilt,
## siehe https://meta.discourse.org/t/17247 für Details
expose:
# - "80:80" # http
# - "443:443" # https
Ich verstehe DNS-Einträge, HTTPS und Zertifikate. Nur der Rest ist neu für mich.
Machen Sie sich keine Sorgen, ich weiß, wie man googelt und ich lerne schnell
Das erklärt, warum der externe Nginx nicht starten kann, da die Ports vom internen belegt sind. Sie müssen diesen Container wahrscheinlich herunterfahren und seine Konfiguration für WordPress auf die äußere Nginx-Schicht übertragen.
Außerdem sind das separate Container, der Nginx ist getrennt von MySQL und WordPress.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ca4cbec2c88 local_discourse/app “/sbin/boot” 3 hours ago Up 2 hours app
42c4211a2fb6 wordpress:5.1.1-fpm-alpine “docker-entrypoint.s…” 2 days ago Up 2 hours 9000/tcp wordpress
5b588a7435ad mysql:8.0 “docker-entrypoint.s…” 2 days ago Up 2 hours 3306/tcp, 33060/tcp db