PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Port bei Nginx ändern



MuppetShow12
13.04.16, 15:12
Wie allgemein bekannt ist der standard Listening-Port ja "listen 80;"
Ich versuche nun schon seit 2 Tagen leider vergebilich den port auf 8099 aus Testzwecken umzustellen, es geht aber nicht. Sobald ich den Port von 80 umstelle, findet der Browser keine Seite mehr. Hier die Config-Datei des virtual Hosts - kommentierte Zeilen habe ich rausgelöscht.... :


root@adi-pc:/etc/nginx/sites-available# vim drupal

server {
listen 8099 ;
listen [::]:8099 ipv6only=on;

root /var/www/drupal/;
index test.php index.php;

# Make site accessible from http://localhost/
server_name drupal.local;

location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params; # fastcgi_params wird nur für Abwärtskompatibilität verwendet
}
}



Da ich bemerkt habe, dass die /etc/hosts Datei auch Einfluss darauf hat, hier auch diese..


root@adi-pc:/etc/nginx/sites-available# vim /etc/hosts

127.0.0.1 localhost
127.0.1.1 adi-pc
#Virtual Hosts
127.0.0.1 drupal.local
127.0.0.1 shopware.local
#127.0.0.1:8099 drupal.local - geht auch nicht!


kommt jemand drauf, was hier falsch läuft? Bitte um Hilfe.... Danke und Lg

BetterWorld
13.04.16, 15:37
Da solltest du -bevor du überhaupt irgendeinen Server einschaltest- die Grundlagen von TCP/IP studieren.
Mindestens sechs Monate, besser Jahre.

Wenn du den Server auf Port 8099 dienen lassen willst,
werden sich die Clients auch auf Port 8099 bedienen lassen müssen.

http://keinserver.nowhere.nix:8099 wäre dann beim Client der korrekte Aufruf.

fork
13.04.16, 17:54
Was sagt denn die Ausgabe von netstat -nltp auf dem Server?


listen [::]:8099 ipv6only=on;

Du willst wirklich nur per IPv6 auf den Server zugreifen?

Was zeigt die Ausgabe am Server von wget -O/dev/null http://127.0.0.1:8099 ?

drcux
14.04.16, 07:00
Und benutze lieber nicht ".local"...

https://en.wikipedia.org/wiki/.local

MuppetShow12
14.04.16, 10:17
den Aufruf habe ich schon mit "drupal.local:8099 gemacht" - findet komischerweise nichts.

ich wollte nicht über IPv6 zugreifen- hab die Zeile aus bequemlichkeit dringelassen.
Wie ihr seht habe ich eine zweite Seite am Port 8002- die läuft ganz normal, obwohl sich die Configfiles nicht unterscheiden.... bis auf die angesprochenen Root-Directories (siehe Code letzter Befehl)



root@adi-pc:/etc/nginx/sites-enabled# netstat -nltp
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8002 0.0.0.0:* LISTEN 1100/nginx
tcp 0 0 0.0.0.0:8099 0.0.0.0:* LISTEN 1100/nginx
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1090/mysqld
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 670/smbd
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1100/nginx
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1315/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2337/cupsd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 670/smbd
tcp 0 0 0.0.0.0:11935 0.0.0.0:* LISTEN 2598/skype
tcp6 0 0 :::8002 :::* LISTEN 1100/nginx
tcp6 0 0 :::8099 :::* LISTEN 1100/nginx
tcp6 0 0 :::139 :::* LISTEN 670/smbd
tcp6 0 0 :::8080 :::* LISTEN 1100/nginx
tcp6 0 0 ::1:631 :::* LISTEN 2337/cupsd
tcp6 0 0 :::445 :::* LISTEN 670/smbd

root@adi-pc:/etc/nginx/sites-enabled# wget -O/dev/null http://127.0.0.1:8099
--2016-04-14 10:18:22-- http://127.0.0.1:8099/
Verbindungsaufbau zu 127.0.0.1:8099... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: nicht spezifiziert [text/html]
In »»/dev/null«« speichern.

[ <=> ] 79.876 --.-K/s in 0s

2016-04-14 10:18:22 (316 MB/s) - »/dev/null« gespeichert [79876]

root@adi-pc:/etc/nginx/sites-enabled# diff /etc/nginx/sites-available/drupal /etc/nginx/sites-available/shopware
21,22c21,22
< listen 8099;
< listen [::]:8099 ipv6only=on;
---
> listen 8002 ;
> listen [::]:8002 ipv6only=on;
24,25c24,25
< root /var/www/drupal/;
< index test.php index.php;
---
> root /var/www/shopware/;
> index test.php shopware.php;
28c28
< server_name drupal.local;
---
> server_name shopware.local;


was die genannten Befehle angeht sehe ich keine Auffälligkeiten, oder?
Warum steht in der netstat eigentlich 0.0.0.0. als lokale Adresse bei nginx drin? sollte doch 127.0.0.1 heißen....

Zusatz: bin auf eine Idee gekommen
über die IP -Nummern "http://127.0.0.1:8099/" und "http://127.0.0.1:8002/" kann ich schon zugreifen- nur warum geht es nicht wenn ich "drupal.local:8099" aufrufe?
Lg

marce
14.04.16, 10:45
lt. der Konsoleausgabe funktioniert alles.

Was ist denn die konkrete Fehlermeldung vom Browser?

MuppetShow12
14.04.16, 10:52
im error.log steht nichts drin.
auf "http://shopware.local:8002/" und "http://drupal.local:8009/" sucht der Browser erst 10 sekunden und dann kommt "Fehler: Server nicht gefunden - Der Server unter www.drupal.local konnte nicht gefunden werden."
Achtung- vielleicht hat es sich überschnitten- über Aufruf der IP-adressen kann ich zugreifen. Lg

MuppetShow12
14.04.16, 10:55
Der Server unter www.drupal.local konnte nicht gefunden werden."
oh Mann -jetzt sehe ich gerade: scheitert es wegen dem "www" ?

marce
14.04.16, 10:59
hast Du einen entsrpechenden Eintrag in der /etc/hosts? Wenn nein - Bingo.

Herzlich willkommen in der "dem Benutzer alles leichter machen durch programmierte Intelligenz"-Fehlerabteilung.

MuppetShow12
14.04.16, 11:06
:) Bingo
ich werd jetzt mal die lokalen Server umbennen auf den Hinweis von drcux hin.
zit: Warum steht in der netstat eigentlich 0.0.0.0. als lokale Adresse bei nginx drin? sollte doch 127.0.0.1 heißen....

Zusammenfassung, da derzeit keine Online ist:
1. in dem nginx config- file "/etc/nginx/sites-available/configfile" den beabsichtigten Port per ":" reinschreiben (tip: bis 8000 gehen die vom System standardmäßig verwendeten ports, deswegen habe ich eine höhere Zahl gewählt)
2. in /etc/hosts die Zuordung hineinschreiben, dann kann man auch über den Namen aufrufen.

marce
14.04.16, 11:12
weil nginx auch nach außen horcht und nicht nur auf localhost.

BetterWorld
14.04.16, 12:39
....Port per ":" reinschreiben (tip: bis 8000 gehen die vom System standardmäßig verwendeten ports, deswegen habe ich eine höhere Zahl gewählt)Das ist falsch.
Es gibt die "well known ports" bis 1024 und dann kommen diverse "registered ports". Die können von Firmen für ihre Protokolle reserviert werden.
Zwar gibt es solche Grenzen, die von Linux liegt aber bei irgendwas um die 4000.
Nur spielt das nicht wirklich eine Rolle.

Das System kann alle Ports verwenden.

Und die Adresse 0.0.0.0 meint (fast) immer "alle IP-Adressen auf allen Interfaces"

fork
15.04.16, 01:31
Ansonsten: Dass ist eine Vorgehensweise von Firefox, dass er z. B. drupal.local als Schreibfehler ansieht und das in www.drupal.local umwandelt.

Im übrigen ist .local eine reserviert Top-Level-Domain für multicast-DNS. Nutze die nicht! Nutze besser drupal.zz und richte in Deiner Hosts-Datei zwei aliase dafür ein:

/etc/hosts


[Server-IP] drupal.zz www.drupal.zz


...und sofern Du nicht alles(Browser + Webserver) auf dem gleichen Rechner testest, ist 127.0.0.1 eher eine schlechte Wahl. :)

MuppetShow12
15.04.16, 10:49
...und sofern Du nicht alles(Browser + Webserver) auf dem gleichen Rechner testest, ist 127.0.0.1 eher eine schlechte Wahl. :)
Ich verstehe den Tip nicht.. ich dachte der lokale Webserver ist auf 127.0.0.1 verfügbar..... ich habe 2 Serverinstanzen auf 2 verschiedenen Ports. Wie der Browser mit seiner IP jetzt reinpassen soll verstehe ich gar nicht.... kannst du es mir erklären- Danke!

BetterWorld
15.04.16, 13:02
localhost ist per definitionem ein Pseudonetzwerkgerät, das die Maschine selbst repräsentiert.
Alles, was dort hingeschickt oder abgeholt wird, erreicht weder Draht noch Antenne - es ist rein lokal die Maschine, auf der das läuft.
Von außen wird nichts und niemand mit dieser PseudoIP kommunizieren können.

Dein Webserver ist also nur für Browser erreichbar, die auch auf dieser Maschine laufen.
Und sonst für niemanden.

Am Rande: Für einen Webserver musst du auch nicht mit der /etc/hosts spielen.

drcux
16.04.16, 09:53
Ansonsten: Dass ist eine Vorgehensweise von Firefox, dass er z. B. drupal.local als Schreibfehler ansieht und das in www.drupal.local umwandelt.


Nö, Firefox versucht drupal.local per DNS aufzulösen, bekommt keine positive Antwort und probiert unter anderem www.drupal.local. Hier mal nen Beispiel von meinem DNS:



query[A] server.local from 192.168.5.171
query[A] server.local.drcux.netz from 192.168.5.171
query[A] www.server.local from 192.168.5.171
query[A] www.server.local.drcux.netz from 192.168.5.171


Sobald ein "." in der Adressleiste von Firefox eingegeben wird, wird eine DNS-Anfrage verschickt.

marce
16.04.16, 10:42
so oder so ist das einie "Intelligentleistung" des Browsers. Ähnlich verhält es sich bei den Endungen .de, .com, ... - und zu guter letzt wird evtl. sogar noch Google befragt, was der User da denn in die Leiste eingetippt hat und ggf. gemeint haben könnte.