Ubuntu - Apache VirtualHosts op andere poort

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • EricNL
  • Registratie: April 2009
  • Laatst online: 24-09 12:40
Mannen,

Mijn vader heeft thuis een website draaien op een Windows machine (Apache) en heeft nu ook Apache draaien op een Ubuntu machine. Die Windows machine gaat er straks uit.

Even een korte inleiding: ik ben zelf netwerk engineer en heb ook wel aardig verstand van Windows maar niet veel van Linux.
Mijn vader juist het tegenovergestelde. Dat is dus de reden dat we onze krachten even willen bundelen.

Wat is nu het probleem? Zoals gezegd wil hij 2 websites gaan draaien, maar het gaat om een migratie van "oud" naar nieuw". Op de Windows machine draait nu de "oude" website en op de Ubuntu machine staat de "nieuwe" website. Zelfde domeinnaam, dus we willen de ene website op poort 80 draaien, en de andere op poort 8080.

- Als ik simpelweg poort 80 forward op de router (Asus AC-66U) naar de Windows machine krijg ik netjes de oude website te zien.
- Als ik deze portforward aanpas naar het IP van zijn Ubuntu machine krijg ik netjes de nieuwe website te zien.

Zoals gezegd willen we om te beginnen de nieuwe website even op een andere poort draaien, poort 8080. Nu moet je hier natuurlijk ook wat voor aanpassen in je Ubuntu machine / Apache configuratie. Nou heb ik allerlei artikels gevonden en gevolgd maar we krijgen het gewoon niet aan de praat. Wat ik heb gevonden en gedaan:
- /etc/apache2/ports.conf aangepast. Hier stond alleen "Listen 80". Hier ook "Listen 8080" op een eigen regel erbij gezet (tevens ook getest met Listen intern-ip:80 en Listen intern-ip:8080, maakte geen verschil).
- virtual host-file in /etc/apache2/sites-available/www.domein.nl.conf aangepast. De <VirtualHost> regel aangepast. Zowel <VirtualHost *:8080> als <VirtualHost intern-ip:8080> geprobeerd.
- Vervolgens Apache2 herstart

Gevolg: geen website als ik vanaf het internet naar domeinnaam (of zelfs externe ip) ga op poort 8080.

Een simpele telnet naar dezelfde domeinnaam op poort 8080 komt gewoon aan en zie ik ook terug bij een "netstat -natp" vanaf de Ubuntu machine. Router kan ik dus uitsluiten.

Ik heb het gevoel dat we ergens nog iets missen. Op poort 80 werkt de nieuwe website dus zonder probleem, maar zodra we het op poort 8080 willen configureren gaat het mis.

Iemand tips/truucs/tests/advies?

My PC  Steam Profile  PSN: AfcaEricNL

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:30

Hero of Time

Moderator LNX

There is only one Legend

Ga eerst eens kijken naar de logs en uitvoer van 'netstat -tlnp'. Luistert Apache wel op 8080 bijvoorbeeld? Staat dat ook zo in de logs? Als je een telnet doet, zou je dat ook terug moeten zien in de access.log van Apache. Het enige wat je nu hebt getest is dat poort 8080 van buiten bereikbaar is op je systeem, maar je weet niet welke service daar achter hangt.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • EricNL
  • Registratie: April 2009
  • Laatst online: 24-09 12:40
Hero of Time schreef op zondag 2 juli 2017 @ 12:46:
Ga eerst eens kijken naar de logs en uitvoer van 'netstat -tlnp'. Luistert Apache wel op 8080 bijvoorbeeld? Staat dat ook zo in de logs? Als je een telnet doet, zou je dat ook terug moeten zien in de access.log van Apache. Het enige wat je nu hebt getest is dat poort 8080 van buiten bereikbaar is op je systeem, maar je weet niet welke service daar achter hangt.
Logs heb ik niet gekeken maar als ik van buiten telnet op poort 8080 naar zijn domein naam of IP dan zien we op de Linux machine een ESTABLISHED connection naar apache2.

My PC  Steam Profile  PSN: AfcaEricNL


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:30

Hero of Time

Moderator LNX

There is only one Legend

Dan nog, check je logs. Check ook de code van je website, staat er niet ergens een redirect of volledige URL ipv relatief (link naar over.html gaat bijvoorbeeld naar domein.nl/over.html ipv /over.html).

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • EricNL
  • Registratie: April 2009
  • Laatst online: 24-09 12:40
Hero of Time schreef op zondag 2 juli 2017 @ 12:50:
Dan nog, check je logs. Check ook de code van je website, staat er niet ergens een redirect of volledige URL ipv relatief (link naar over.html gaat bijvoorbeeld naar domein.nl/over.html ipv /over.html).
Bedankt, logs ga ik zometeen checken. Wat ik wel zag is dat bij een werkende config (over poort 80 in dit geval) een www.domeinnaam.nl resolvede naar domeinnaam.nl. Dit was ook nog een puntje waar aan gewerkt moet worden, maar wellicht moet ik het daar ook nog zoeken. Zou ik het nog steeds vreemd vinden waarom het op poort 80 dan wel zou werken en op 8080 niet.

My PC  Steam Profile  PSN: AfcaEricNL


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
/var/log/apache2/error.log heeft niks? Wat zecht apache2ctl -t ? Of service apache2 configtest of invoke-rc.d apache2 configtest. En misschien heet het bij jou niet apache2 maar apache of httpd. Daarnaast is ports.conf meer voor de globale instellingen, misschien heb je in de vhost wel hardcoded 80 gezet?

[ Voor 22% gewijzigd door johnkeates op 02-07-2017 12:55 ]


Acties:
  • 0 Henk 'm!

  • EricNL
  • Registratie: April 2009
  • Laatst online: 24-09 12:40
johnkeates schreef op zondag 2 juli 2017 @ 12:55:
/var/log/apache2/error.log heeft niks? Wat zecht apache2ctl -t ? Of service apache2 configtest of invoke-rc.d apache2 configtest. En misschien heet het bij jou niet apache2 maar apache of httpd.
Ik heb even heel simpel dezelfde situatie nagemaakt op mijn Raspberry Pi en test alleen even intern.

- Apache2 geinstalleerd
- 2 VirtualHosts aangemaakt en een simpele index.html voor beiden
- Host 1 luistert gewoon op Poort 80 (in ports.conf Listen 80 en Listen 8080)
- Host 2 luistert op Poort 8080
- Host 1 kan ik via browser wel benaderen maar ik krijg de standaard Apache2 Debian Default Page te zien i.p.v. de index.html
- Host 2 (poort 8080) doet netjes wat het hoort te doen (krijg netjes de index.html) te zien

netstat -natp laat zien:

code:
1
2
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      8113/apache2
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8113/apache2


Commando "service apache2 configtest" en "invoke-rc.d apache2 configtest" werken niet en httpd of apache zijn niet te vinden. Het is echt apache2 (zowel bij mij als bij m'n vader in dit geval...)
johnkeates schreef op zondag 2 juli 2017 @ 12:55:
Daarnaast is ports.conf meer voor de globale instellingen, misschien heb je in de vhost wel hardcoded 80 gezet?
Ook in de specifieke vhost .conf bestanden hebben we zelf met intern-ip:8080 of *:80 zitten klooien maar dat leek geen verschil te maken...

[ Voor 15% gewijzigd door EricNL op 02-07-2017 13:25 ]

My PC  Steam Profile  PSN: AfcaEricNL


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Maar dan werkt het dus? :p

Acties:
  • 0 Henk 'm!

  • EricNL
  • Registratie: April 2009
  • Laatst online: 24-09 12:40
Afgezien het feit dat bij mij 1 host niet met de index.html terug komt lijkt dat te werken. Ik heb mijn Apache2 ook echt net helemaal vanaf scratch geinstalleerd (uberhaupt de 1e keer dat ik dat heb gedaan). De kans is dus wel aanwezig dat er al ergens anders een probleempje zit bij de config van m'n vader.

Edit: vergeet het verhaal dat 1 host niet met z'n index.html terug kwam, ik was even de portforward voor poort 80 vergeten (die van 8080 wel gedaan... |:( )

[ Voor 15% gewijzigd door EricNL op 02-07-2017 13:29 ]

My PC  Steam Profile  PSN: AfcaEricNL


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
EricNL schreef op zondag 2 juli 2017 @ 13:27:
[...]


Afgezien het feit dat bij mij 1 host niet met de index.html terug komt lijkt dat te werken. Ik heb mijn Apache2 ook echt net helemaal vanaf scratch geinstalleerd (uberhaupt de 1e keer dat ik dat heb gedaan). De kans is dus wel aanwezig dat er al ergens anders een probleempje zit bij de config van m'n vader.
Je kan met apachectl (of apache2ctl of hoe het ook heet op jouw distro) een output krijgen van wat apache denkt dat de config moet doen.

Voorbeeld op Debian 8 (OldStable / Jessie):
john@example.net:~$ sudo apache2ctl -S
[sudo] password for john: 
VirtualHost configuration:
*:80                   www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl 
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: ENABLE_USR_LIB_CGI_BIN
User: name="www-data" id=33
Group: name="www-data" id=33

Acties:
  • 0 Henk 'm!

  • LightningBullet
  • Registratie: Augustus 2005
  • Laatst online: 03:54
Is het niet mogelijk om ze allebei op port 80 te laten draaien (het zijn immers twee verschillende machines) en dan in de router port 8080 te laten forwarden naar port 80 op de Ubuntu machine? Ik meen me te herinneren dat dat ooit iig wel kon. Dat scheelt ook als straks de Ubuntu machine de website over neemt, hoef je alleen de router instellingen maar te veranderen.

[ Voor 8% gewijzigd door LightningBullet op 02-07-2017 13:49 ]


Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Zonder daadwerkelijk alle configuratie-files in te kunnen zien, wordt dit remote erg lastig te debuggen.

Apache is verder nogal "picky" qua VirtualHost-selectie. Het mengen van wildcards en IP-adressen is roepen om problemen.

Lees anders héél goed even https://httpd.apache.org/docs/2.4/vhosts/name-based.html door om te leren hóe Apache tot de keus van een VirtualHost komt.

Overigens: het feit dat Apache o.a. met de Default pagina op de proppen komt, geeft aan dat er nóg een andere VirtualHost is. Check ook a.d.v. bovenstaande document hóe die geconfigureerd is. Het helpt immers niet om de door jou gewenste VirtualHosts perfect in te stellen als vervolgens ergens ánders nog een (default) VirtualHost roet in het eten gooit, omdat die weer op een andere manier geconfigureerd is.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:30

Hero of Time

Moderator LNX

There is only one Legend

Dat kan, de Asus AC-66U heeft netjes die twee gescheiden.
* Hero of Time heeft ook zo'n ding, werkt geweldig voor wifi.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • EricNL
  • Registratie: April 2009
  • Laatst online: 24-09 12:40
LightningBullet schreef op zondag 2 juli 2017 @ 13:49:
Is het niet mogelijk om ze allebei op port 80 te laten draaien (het zijn immers twee verschillende machines) en dan in de router port 8080 te laten forwarden naar port 80 op de Ubuntu machine? Ik meen me te herinneren dat dat ooit iig wel kon. Dat scheelt ook als straks de Ubuntu machine de website over neemt, hoef je alleen de router instellingen maar te veranderen.
Klopt, dat kan ook, echter willen we van die Windows machine af. Er zijn zeker alternatieven, maar puur vanwege het feit dat ik het zojuist bij mijzelf aan de praat heb gekregen accepteer ik het gewoon niet dat we dit probleem niet op kunnen lossen. Dat heeft niks te maken met jullie adviezen/tips, maar meer met mijn OCD. Ik weiger te accepteren dat ik/wij dit niet op kunnen lossen >:)

My PC  Steam Profile  PSN: AfcaEricNL


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:30

Hero of Time

Moderator LNX

There is only one Legend

EricNL schreef op zondag 2 juli 2017 @ 14:01:
[...]

Klopt, dat kan ook, echter willen we van die Windows machine af. Er zijn zeker alternatieven, maar puur vanwege het feit dat ik het zojuist bij mijzelf aan de praat heb gekregen accepteer ik het gewoon niet dat we dit probleem niet op kunnen lossen. Dat heeft niks te maken met jullie adviezen/tips, maar meer met mijn OCD. Ik weiger te accepteren dat ik/wij dit niet op kunnen lossen >:)
Maar je kan uiteindelijk ook van die Windows bak af. Punt is nu dat je de site gewoon kan testen over 8080 zonder dat Apache daar direct roet in 't eten gooit met z'n config. Als je alsnog issues hebt met de forward van 8080 naar 80, dan is het niet Apache, maar de code van de site waar het probleem zit.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
EricNL schreef op zondag 2 juli 2017 @ 14:01:
[...]

Ik weiger te accepteren dat ik/wij dit niet op kunnen lossen >:)
Je wilt toch gewoon één Apache op één machine op zowel poort 80 als op poort 8080 laten draaien, maar dan met 2 verschillende VirtualHosts?

Dat is echt rete-simpel, tenzij je elders in je Apache-configuratie storende factoren hebt.

Acties:
  • 0 Henk 'm!

  • EricNL
  • Registratie: April 2009
  • Laatst online: 24-09 12:40
Zojuist nog e.e.a. gechecked maar het probleem werd vager en vager, en mijn Linux kennis schoot echt gewoon te kort. De oude website (Windows bak) is er nu gewoon definitief uitgetrokken, en de nieuwe website (Apache VirtualHost op Linux) draait nu op poort 80 en dat werkt.

Ik kan op dit moment zelfs niet eens meer uitleggen wat er nu allemaal gebeurde, maar helemaal terug naar de basis en nu werkt het (gewoon op poort 80).

Er draait op dit moment ook maar 1 website op de Linux bak. Zodra dat er toch wel 2 moeten (gaan) worden gaan we wel verder kijken, maar voor nu is het case closed. Ik had ook niet de tijd/zin om volledig in zijn hele configuratie(s) te duiken om dit op te zoeken. Troubleshooting vind ik erg leuk maar aangezien ik er al vanaf 10:15 mee bezig ben en het zondag is vind ik het wel weer genoeg werk voor vandaag.

Bedankt voor alle tips en adviezen!

My PC  Steam Profile  PSN: AfcaEricNL


Acties:
  • 0 Henk 'm!

  • valkenier
  • Registratie: Maart 2000
  • Laatst online: 30-09 14:31
EricNL schreef op zondag 2 juli 2017 @ 12:37:
Mannen,


- /etc/apache2/ports.conf aangepast. Hier stond alleen "Listen 80". Hier ook "Listen 8080" op een eigen regel erbij gezet (tevens ook getest met Listen intern-ip:80 en Listen intern-ip:8080, maakte geen verschil).
- virtual host-file in /etc/apache2/sites-available/www.domein.nl.conf aangepast. De <VirtualHost> regel aangepast. Zowel <VirtualHost *:8080> als <VirtualHost intern-ip:8080> geprobeerd.
- Vervolgens Apache2 herstart
Je hebt de nieuwe virtualhost aangepast in sites-available, heb je daarna de nieuwe daarna ook de site geactiveerd middels a2ensite jouwdomein.conf? Die stap zie ik niet staan.

daarna service apache2 reload of restart.

De site wordt dan ook zichtbaar onder sites-enabled.

[ Voor 6% gewijzigd door valkenier op 13-07-2017 16:00 ]


Acties:
  • 0 Henk 'm!

  • powerboat
  • Registratie: December 2003
  • Laatst online: 30-09 15:32
Ik zou er een reverse proxy voor zetten (kan met apache) dan kun je zo wisselen. Tevens hangt je webserver niet rechtstreeks aan het internet.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:30

Hero of Time

Moderator LNX

There is only one Legend

@valkenier, @powerboat, de TS heeft het al omgezet. De webserver hangt al niet direct aan 't web, in die zin dat er nog een NAT router tussen zit. Een reverse proxy heeft verders geen enkele toegevoegde waarde mbt beveiliging.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • WHiZZi
  • Registratie: Januari 2001
  • Laatst online: 30-09 13:05

WHiZZi

Museumdirecteurtje

Heeft Ubuntu geen firewall.. :?

HomeComputerMuseum - Interactief computermuseum waar wij de geschiedenis van de thuiscomputer preserveren. Centraal gelegen in de Benelux.


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:30

Hero of Time

Moderator LNX

There is only one Legend

WHiZZi schreef op maandag 17 juli 2017 @ 17:06:
Heeft Ubuntu geen firewall.. :?
Heeft 'ie wel, maar niet standaard aan.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • WHiZZi
  • Registratie: Januari 2001
  • Laatst online: 30-09 13:05

WHiZZi

Museumdirecteurtje

Ik heb al een tijdje niks meer met Ubuntu gedaan, ik weet dat bijvoorbeeld CentOS SELinux standaard aan heeft staan en dat je daar specifiek ook aan moet geven dat bepaalde poorten werken.

TS vertelt niet of hij 'telnet localhost 8080' heeft gedaan of vanuit een willekeurige machine in het netwerk naar poort 8080.

Netstat -tnpl laat wel poort 8080 open zien, dus het proces heeft de poort geopend. Echter is er geen bewijs dat er van buiten zijn eigen server een connectie gemaakt kan worden, vandaar mijn vraag over firewall (want die zou dit verklaren) of een SELinux-variant die de poort dicht houdt.

Aangezien ik ook geen bewijs zie dat Apache een logentry krijgt van een poging tot connectie (access.log dus) zou op basis van de gegevens mijn conclusie toch echt op zoiets liggen tenzij anders bewezen ;)

HomeComputerMuseum - Interactief computermuseum waar wij de geschiedenis van de thuiscomputer preserveren. Centraal gelegen in de Benelux.


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:30

Hero of Time

Moderator LNX

There is only one Legend

Begrijpelijk, maar TS heeft al aangegeven dat de Windows host gewoon niet meer draait met Apache en alles nu via z'n Ubuntu machine gaat. En dat werkt prima. Waar het echt aan heeft gelegen, geen idee. Zou net zo goed de router/modem kunnen zijn geweest die niet lekker wilde forwarden, of z'n ISP die iets raars doet met 8080. Hij testte immers direct via de domeinnaam en dat gaat dan buitenkom terug naar binnen. Genoeg vaagheden die daarmee gepaard kunnen gaan.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

Verwijderd

ik zou het simpel houden, je gaat het toch weer terug zetten op poort 80 als de windows machine weg is. dus in de router portforward je de 8080 naar 80 op ubuntu en een andere website op je subdomein gooien is makkelijker dan op een ander poortnummer
Pagina: 1