Zum Hauptinhalt springen

Nginx

Übersicht

In dieser Anleitung verwenden wir Nginx als Reverse Proxy für den Zugriff auf das Remnawave Panel. Wir richten den Domainnamen auf unseren Server aus, stellen ein SSL-Zertifikat aus und konfigurieren Nginx.

warnung

Sie benötigen einen registrierten Domainnamen, um fortzufahren.

Domain auf Ihren Server zeigen

Überprüfen Sie die IP-Adresse Ihres Servers. Es ist besser, eine statische IPv4-Adresse zu verwenden.

Jetzt müssen Sie Ihren Domainnamen auf diese IP-Adresse zeigen.

Zum Beispiel wird es my-super-panel.com -> 193.122.122.122 sein.

Es gibt zwei Möglichkeiten, dies zu tun:

  1. Einen DNS-Anbieter verwenden (z.B. Cloudflare, Google Cloud, etc.)
  2. Einen Registrar verwenden (z.B. Namecheap, etc.)

DNS-Anbieter

Wenn Sie Cloudflare verwenden, müssen Sie einen A/AAAA-Eintrag (für IPv4 bzw. IPv6) zu Ihren DNS-Einträgen hinzufügen.

Melden Sie sich hier bei Ihrem Cloudflare-Konto an und wählen Sie die gewünschte Domain.

Klicken Sie auf der linken Seite der Seite auf DNS und dann auf Records. Klicken Sie auf Create record.
Setzen Sie den Type auf A und den Name auf @.

info

Wenn Sie Subdomains verwenden möchten, sollten Sie den Subdomain-Namen (z.B. panel) im Feld Name eingeben.

Geben Sie die IP-Adresse Ihres Servers in das Feld IPv4 address ein und klicken Sie auf Save.

Jetzt müssen Sie eine Weile warten, bis die DNS-Einträge aktualisiert werden.

info

Es gibt einen großen Unterschied zwischen der gelben Wolke (Domain wird durch Cloudflare geleitet) und der grauen Wolke (Domain wird nicht durch Cloudflare geleitet) im Cloudflare-Kontrollpanel.

Wenn Cloudflare in Ihrer Region gut funktioniert, ist es besser, die Domain durch Cloudflare zu leiten. (Gelbe Wolke)

static

Einige DNS-Anbieter haben eine andere Oberfläche, aber der Gesamtprozess ist derselbe.

SSL-Zertifikat ausstellen

Nun müssen Sie ein SSL-Zertifikat ausstellen. Der einfachste Weg ist die Verwendung von acme.sh.

warnung

Diese Anleitung behandelt nur die Ausstellung eines SSL-Zertifikats für die Domain des Panels.

Abhängigkeiten installieren

sudo apt-get install cron socat

acme.sh installieren

info

Sie können eine beliebige E-Mail-Adresse für die Ausstellung des Zertifikats verwenden, es wird jedoch empfohlen, eine gültige zu verwenden.

Ersetzen Sie EMAIL durch Ihre E-Mail-Adresse.

curl https://get.acme.sh | sh -s email=EMAIL && source ~/.bashrc

Ordner für Zertifikate erstellen

mkdir -p /opt/remnawave/nginx && cd /opt/remnawave/nginx

Zertifikat ausstellen

Ersetzen Sie DOMAIN durch den Domainnamen, für den Sie ein Zertifikat ausstellen möchten.

warnung

Verwenden Sie keine Domain-Zonen: .ru, .su, .рф. ZeroSSL unterstützt diese Zonen derzeit nicht.

acme.sh --issue --standalone -d 'DOMAIN' --key-file /opt/remnawave/nginx/privkey.key --fullchain-file /opt/remnawave/nginx/fullchain.pem --alpn --tlsport 8443 --reloadcmd "docker exec remnawave-nginx nginx -s reload"
info

Stellen Sie sicher, dass Port 8443 auf Ihrem Server geöffnet ist. Er wird für die Zertifikatsausstellung benötigt.

acme.sh --install-cert -d 'DOMAIN' --key-file /opt/remnawave/nginx/privkey.key --fullchain-file /opt/remnawave/nginx/fullchain.pem --reloadcmd "docker exec remnawave-nginx nginx -s reload"

Dies zeigt, dass das Zertifikat ausgestellt wurde. Acme.sh kümmert sich automatisch alle 60 Tage um die Erneuerung — stellen Sie nur sicher, dass Port 8443 auf Ihrem Server offen (und nicht belegt) ist.

Nginx-Konfiguration

Einfache Konfiguration

Erstellen Sie eine Datei namens nginx.conf im Verzeichnis /opt/remnawave/nginx.

cd /opt/remnawave/nginx && nano nginx.conf

Fügen Sie die folgende Konfiguration ein.

warnung

Bitte ersetzen Sie REPLACE_WITH_YOUR_DOMAIN durch Ihren Domainnamen.

Überprüfen Sie die folgende Konfiguration, achten Sie auf rot markierte Zeilen.

nginx.conf
upstream remnawave {
server remnawave:3000;
}

server {
server_name REPLACE_WITH_YOUR_DOMAIN;

listen 443 ssl reuseport;
listen [::]:443 ssl reuseport;
http2 on;

location / {
proxy_http_version 1.1;
proxy_pass http://remnawave;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

# SSL Configuration (Mozilla Intermediate Guidelines)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;

ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_certificate "/etc/nginx/ssl/fullchain.pem";
ssl_certificate_key "/etc/nginx/ssl/privkey.key";
ssl_trusted_certificate "/etc/nginx/ssl/fullchain.pem";

ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s;
resolver_timeout 2s;

# Gzip Compression
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types
application/atom+xml
application/geo+json
application/javascript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rdf+xml
application/rss+xml
application/xhtml+xml
application/xml
font/eot
font/otf
font/ttf
image/svg+xml
text/css
text/javascript
text/plain
text/xml;
}

server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name _;

ssl_reject_handshake on;
}

docker-compose.yml erstellen

Erstellen Sie eine docker-compose.yml-Datei im Verzeichnis /opt/remnawave/nginx.

cd /opt/remnawave/nginx && nano docker-compose.yml

Fügen Sie die folgende Konfiguration ein.

docker-compose.yml
services:
remnawave-nginx:
image: nginx:1.28
container_name: remnawave-nginx
hostname: remnawave-nginx
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
- ./fullchain.pem:/etc/nginx/ssl/fullchain.pem:ro
- ./privkey.key:/etc/nginx/ssl/privkey.key:ro
restart: always
ports:
- '0.0.0.0:443:443'
networks:
- remnawave-network

networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true

Container starten

docker compose up -d && docker compose logs -f -t

Panel im Browser öffnen

Öffnen Sie den konfigurierten Domainnamen im Browser und Sie sehen die Anmeldeseite.

login-page

Fehlerbehebung