Webinhalt mit Passwort schützen unter nginx

Status
Für weitere Antworten geschlossen.

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
Hi
ich versuche einen Unterordner von /volume1/web/ beim Aufruf von https://www.meinedomain.de/Unterordner mit einem Passwort zu schützen.
Dies ist mit unter der Verwendung von apache bisher gut gelungen mit einer .htaccess Datei
Jetzt verwende ich nginx und dies funktioniert nun anders.
Mit htpasswd habe ich bereits eine Datei mit Benutzernamen und Passwort erzeugt.
Jetzt soll ich folgenden Eintrag in die /etc/nginx/nginx.conf eintragen:
Rich (BBCode):
server {
   ...
   location /volume1/web/Unterordner {
      auth_basic "Geschützer Bereich";
      auth_basic_user_file /volume1/web/htpasswd;
}

Beim neustarten vom nginx dienst mit "synoservicectl --restart nginx" wird jedoch die nginx.conf neu erzeugt und überschrieben.
Im Forum habe ich bereits herausgefunden, dass das script zum erzeugen unter "\usr\syno\etc.defaults\rc.sysv\nginx-conf-generator.sh " liegt.

Jetzt meine Frage:
Wo genau lege ich nun meinen Code hin, damit er permanent bleibt?
Hat da jemand Ideen?

Gruß
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
Meines Wissens kannst du einfach eine weitere eigene *.conf Datei in einen der Pfade legen aus denen sich die config zusammenbaut.
Also z.B. /etc/nginx/sites-enabled/
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
Hmm OK
es scheint meine erstellte config datei in /etc/nginx/sites-enabled zu registrieren. bei syntax-fehlern ist die seite im "Unterordner" nicht mehr erreichbar.
Aber eine Authentifizierung bekomm ich trotzdem nicht hin mit:
Rich (BBCode):
server {
    listen 443;
    root /volume1/web;
    location /Unterordner {
        auth_basic "Geschützer Bereich";
        auth_basic_user_file /volume1/web/.htpasswd;
    }
}

Wo liegt hier der Fehler?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
Webserver hast du neu gestartet?

Vielleicht fehlt noch ein server_name *; oder so. Habs ehrlich gesagt noch nicht gebraucht, sonst hätte ich es dir aus dem Ärmel geschüttelt.
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
jo immer
"synoservicectl --reload nginx" bzw "--restart"

und "server_name *;" hilft leider auch nicht.
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
So habe es nun geschafft. War doch etwas komplizierter als gedacht.
Ganz kurz: Mein Ziel war es einen einfachen Glype Web-Proxy mit einem Passwort zu schützen.
Wie gesagt ich nutze Nginx anstatt Apache

Mein DocumentRoot = /volume1/web
Mein Glype Proxy liegt in /volume1/web/glype

Als erstes muss man sich als root (bzw. admin) eine Benutzer/Passwort-Datei erstellen: (bei mir /volume1/web/.htpasswd)
Rich (BBCode):
> htpasswd -c -m <speicherort> <benutzer>
(beim hinzufügen weiterer benutzer einfach das "-c" weglassen!

Nun die Datei noch lesbar machen und den Besitzer ändern:
Rich (BBCode):
> chmod 440 /volume1/web/.htpasswd
> chown http:http /volume1/web/.htpasswd

Jetzt eine neue Datei "/etc/nginx/sites-enabled/glype.conf" erstellen mit folgendem Inhalt:
Rich (BBCode):
server {
    listen 80;
    listen 443 ssl;
    root /volume1/web;
    index index.php index.html index.htm;
    server_name <Eure Domain. Z.B. ds716.synology.me>;

    location /glype {
        auth_basic "password area";
        auth_basic_user_file /volume1/web/.htpasswd;
    }
    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm/php56-fpm.sock;
        fastcgi_index index.php;
    }
}

Folgendes ans Ende der "/etc/nginx/fastcgi_params" einfügen:
Rich (BBCode):
fastcgi_param  REDIRECT_STATUS    200;
fastcgi_param  SERVER_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  PATH_INFO          $fastcgi_script_name;
fastcgi_param  PATH_TRANSLATED    $document_root$fastcgi_script_name;
fastcgi_buffers 8 8k;
fastcgi_buffer_size 8k;

Jetzt noch den nginx Dienst neustarten:
Rich (BBCode):
> synoservicectl --restart nginx

FERTIG

Danke für die Hilfe
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
Super, danke fürs durchexerzieren und Dokumentation. :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat