Webserver unter IP Adresse nicht abrufbar machen?

3 Antworten

Bei apache get es soweit ich weiß so, dass du den Default Request auf die 404 Seite weiterleitest und dann nur für die URL einen virtual host machst.

Wie es bei nginx geht weiß ich allerdings nicht wirklich


DummeStudentin  08.12.2024, 16:10

Das gleiche Konzept existiert in nginx und heißt dort Server Blocks.

Nutze Cloudflare und schalte einen Proxy von denen darauf


Paddy364 
Beitragsersteller
 08.12.2024, 14:48

Danke für deine Antwort. Ja das könnte ich, würde aber nicht den Zweck und das Ziel erfüllen, für den es vorgesehen ist.

Paddy364 
Beitragsersteller
 08.12.2024, 14:55
@Justman

Was genau, bzw wessen IP meinst du denn gerade?

Ja und nein. Ich möchte zwar, dass die Anfragen gezielt auf die IP Adresse geblockt werden, aber das gilt für jedermann. Ruf doch einfach mal die IP Adresse von google.de ab (142.251.163.94). Ich habe nicht vor bestimmte IP Adressen von Usern zu blocken! Ich möchte lediglich, dass die Welt die IP Adresse meines Systems nicht via http://IP-Adresse erreicht

Justman  08.12.2024, 14:57
@Paddy364

Kapier ich nicht! Du willst also, dass die IP gar nicht erst erfasst werden kann?

DummeStudentin  08.12.2024, 16:14
@Justman

Wenn ich den Fragesteller richtig verstehe, möchte er nicht die IP Adresse seines Servers geheim halten (was mit Cloudflare möglich ist), sondern nur verhindern, dass seine Webseite ausgeliefert wird, wenn in der HTTP Request kein Hostname gesetzt ist.

Paddy364 
Beitragsersteller
 12.12.2024, 16:34
@DummeStudentin

Genau das war/ist der Plan. Dazu wurde weiter unten einen Vorschlag gegeben :)

Paddy364 
Beitragsersteller
 12.12.2024, 16:38
@Paddy364

Zu spät realisiert, dass du das mit dem Vorschlag warst haha. Fühl dich geehrt

Die Funktion, die du suchst, heißt in nginx Server Blocks (ähnlich wie Virtual Hosts in Apache 2).

Du kannst mit "default_server" festlegen, welcher Server Block verwendet wird, wenn kein Hostname vorhanden ist oder der Hostname unbekannt ist. In diesem Beispiel wird z.B. die Seite in /var/www/html ausgeliefert, aber du könntest stattdessen eine Fehlerseite anzeigen oder einfach die Verbindung schließen (return 444).

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name _;
    location / {
        try_files $uri $uri/ =404;
    }
}

Für deine Domain(s) erstellst du dann zusätzliche Server Blocks, die deine Webseite ausliefern. Bei "server_name" gibst du deine Domain(s) an:

server {
    listen 80;
    listen [::]:80;
    root /var/www/example.com/html;
    index index.html index.htm index.nginx-debian.html;
    server_name example.com www.example.com;
    location / {
        try_files $uri $uri/ =404;
    }
}

Für Port 443 machst du das gleiche.

Woher ich das weiß:Studium / Ausbildung – Ich studiere Informatik

Paddy364 
Beitragsersteller
 12.12.2024, 16:33

Danke dir!

Die Verbindung zu schließen erscheint mir tatsächlich sinnvoller.