Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [OPGELOST] apache server instellingen - virtual host  (gelezen 6671 keer)

Offline poj

  • Lid
  • Steunpunt: Nee
[OPGELOST] apache server instellingen - virtual host
« Gepost op: 2011/02/26, 15:06:35 »
Beste mensen,

Ik probeer virtual host aan te maken op mijn webserver. Daarmee wil ik het volgende kunnen:
- mensen en bots die op mijn ip adres de server benaderen op een standaard site laten terecht komen (of een 401 pagina of zo)
- mensen en bots (bv google) die via mijn domeinnaam de server benaderen op de echte site laten terecht komen
- subdomeinen aanmaken voor mijn domein.

Alles wat ik tot nu toe probeer heeft als resultaat dat ik of een foutmelding krijg (pagina niet gevonden) of dat alles op de site terecht komt.

Is hetgeen ik wil zowiezo wel mogelijk en zo ja, op welke wijze zou ik dit moeten realiseren. Een verwijzing naar een duidelijke stap voor stap handleiding in het nederlands is ook van harte welkom.
« Laatst bewerkt op: 2011/03/03, 13:37:04 door poj »

Offline bram103

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #1 Gepost op: 2011/02/26, 19:40:41 »
<VirtualHost *:80>
ServerName deDefault
DocumentRoot /<path>
</VirtualHost>

<VirtualHost *:80>
ServerName het.echte.domein
DocumentRoot /<path>
</VirtualHost>
Als wat niet via het.echte.domein op je ip adres terecht komt zal door de bovenste afgevangen worden. Als er tenminste geen standaard site in je configuratie staat.

Offline poj

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #2 Gepost op: 2011/02/27, 12:51:47 »
Dank je Bram,

Ik heb nog 3 vraagjes:
1. Maakt het nog uit waar deze instellingen worden opgeslagen? in httpd.conf of in sites-available/default of in de laatste directory met voor elke site een apart bestand?
2. Waar in de configuratie zou een een standaardsite kunnen zijn opgenomen?
3. Moeten de paden onafhankelijk van elkaar zijn? Dus default in /www/default en mijndomein in /www/mijndomein?

Ondertussen wel wat geprobeerd, waarbij ik de sites-available/default heb gebruikt om de gegevens op te slaan. In webmin zie ik het ook staan, dus dat gaat goed, maar ik kom toch steeds weer uit bij de default directory. Kan het er nog mee te maken hebben, dat mijn server achter een router en een modem zit? Of doe ik iets anders gewoon fout?


Jop
« Laatst bewerkt op: 2011/02/27, 16:40:49 door poj »

Offline bram103

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #3 Gepost op: 2011/02/27, 19:23:18 »
Hoi Jop,

Je configuratie aanpassen in sites-available (met een link naar sites-enabled!!) is zoals het bedoeld is, maar in apache2.conf moet het ook werken.

In de standaard (op mijn systeem) /etc/apache2/sites-available/default, zit een default site die in /var/www staat (DocumentRoot /var/www)

Als beide hosts naar hetzelfde pad verwijzen heeft m.i. weinig nut want dan kom je toch weer op hetzelfde punt uit.

Kijk eens op: http://forum.ubuntu-nl.org/server-en-netwerk/vraagje-betreft-virtual-hosts/msg703055/

Gr,
Bram

Offline poj

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #4 Gepost op: 2011/02/27, 19:38:14 »
Beste Bram,

Dank je voor de reactie. Het lijkt zo simpel, maar het lukt niet echt geloof ik. Bijgevoegd heb ik een schermprint uit webmin gemaakt. Als ik test.xxxx.info gebruik kom ik toch uit op de site die in xxxx.info staat en niet die van www2.

Wel staat er een standaard server die ik niet kan verwijderen. Zou het hiermee te maken kunnen hebben?

Alvast bedankt.
« Laatst bewerkt op: 2011/03/03, 14:51:43 door poj »

Offline Buzzin

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #5 Gepost op: 2011/02/28, 10:29:34 »
Ok, even een simpele vraag: waarom probeer je iedereen naar twee verschillende plekken te wijzen?
Dat staat er nu namelijk: * = alle domeinen inclusief ip adres :80 = poort 80 (http) en dat dus 2x

Even twee aparte virtualhosts maken met: www.domeinnaam.nl:80 en ipadres:80
standaard troep serveren tenzij het een domeinnaam is.

NameVirtualHost *:80
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
blablablabla
</VirtualHost>

NameVirtualHost www.domein.nl:80

<VirtualHost www.domein.nl:80>
        ServerName      domein.nl
        ServerAlias     www.domein.nl
        CustomLog /var/log/apache2/accessdomein.log combined
        DocumentRoot /var/domein

blablabla
 </VirtualHost>


Voila! :)
Football: A battle between two teams of mindless thugs over scraps of coloured cloth. Usually accompanied by the spectacle of 22 overpaid primadonnas kicking a ball on a field.
DebianDevuan, KDE & OperaVivaldi addict, RedHat Engineer

Offline poj

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #6 Gepost op: 2011/02/28, 11:06:28 »
@Buzzin,

Inderdaad, het lijkt zo simpel. Maar waarom kom ik met de onderstaande configuratie in het mapje mijndomein.info terecht als ik http://test.mijndomein.info kies en niet in www2?


<VirtualHost *:80>
   ServerName Default
   DocumentRoot /home/www/mijndomein.info
</VirtualHost>

<VirtualHost mijndomein.info:80>
ServerName mijndomein.info
   ServerAlias www.mijndomein.info
   ServerAlias stamboom.mijndomein.info
DocumentRoot /home/www/mijndomein.info
</VirtualHost>

<VirtualHost test.mijndomein.info:80>
DocumentRoot /home/www/www2
ServerName test.mijndomein.info
</VirtualHost>

Offline Buzzin

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #7 Gepost op: 2011/02/28, 11:12:21 »
Om eerlijk te zijn: ik werk nooit met subdomeinen die op 1 ip draaien.
Dan gebruik ik veel liever proxies.
Dus www.domein.nl/test -> /var/www/www2
en www.domein.nl/* -> /var/www

Maar dat ben ik.
Het kan vast wel...alleen zou ik niet durven zeggen hoe.

Het kan helpen om de naam van je 'gewone' domein server te veranderen naar www.mijndomein.nl ipv zonder www.
Zonder dat www is het namelijk voor het hele domein inclusief alle subdomeinen....denk ik tenminste
Football: A battle between two teams of mindless thugs over scraps of coloured cloth. Usually accompanied by the spectacle of 22 overpaid primadonnas kicking a ball on a field.
DebianDevuan, KDE & OperaVivaldi addict, RedHat Engineer

Offline poj

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #8 Gepost op: 2011/02/28, 11:38:52 »
@buzzin en anderen
Wat je bedoelt met proxies weet ik niet. Maakt ook niet zoveel uit. Voordat we een heel ander probleem gaan oplossen:
Het maakt ook niet zoveel uit als alle subdomeinen op één plaats uit komen. Ik wil alleen dat als de server rechtstreeks wordt benaderd door het IP adres als url te gebruiken dat je dan op een andere plek terecht komt. Dit om te voorkomen dat de googlebot mijn sites opneemt met IP adres en niet met mijn domeinnaam. Het stukje met subdomein test.mijndomein.info is slechts een testje. Als ik bij de default server  de documentroot wijzig dan gaat ook al het andere verkeer naar die root. Dat is een beetje het probleem. Eigenlijk maakt het niet uit welke VirtualHosts ik aan maak, ze komen uit bij de default.

Offline Buzzin

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #9 Gepost op: 2011/02/28, 14:57:28 »
Maar in je stukje hierboven klopt dat ook  ???

het pad is in *:80 namelijk hetzelfde als in mijndomein:80 ....

Plus dat je gewoon een aparte virtualhost kunt aanmaken voor het ipadres.
dus
<VirtualHost x.x.x.x:80>
DocumentRoot /home/gaweg
Eventuele Rewrite rules om permanent door te verwijzen naar je domein (vraag maar als je ze nodig hebt)
blablabla
</VirtualHost>
Football: A battle between two teams of mindless thugs over scraps of coloured cloth. Usually accompanied by the spectacle of 22 overpaid primadonnas kicking a ball on a field.
DebianDevuan, KDE & OperaVivaldi addict, RedHat Engineer

Offline bram103

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #10 Gepost op: 2011/02/28, 18:54:58 »
Citaat
Inderdaad, het lijkt zo simpel. Maar waarom kom ik met de onderstaande configuratie in het mapje mijndomein.info terecht als ik http://test.mijndomein.info kies en niet in www2?
<VirtualHost *:80>
    DocumentRoot /home/www/www2
    ServerName test.mijndomein.info
</VirtualHost>

Het * staat voor alle ip adressen (die je server heeft). Je kunt hier ook een ip adres opgeven (uiteraard 1 van de adressen van je server. Voor zover ik weet (maar ik pretendeer niet dat ik alles weet) kun je hier geen domeinnamen in zetten.

<VirtualHost <ip van kaart 1>:80>
    DocumentRoot /home/www1
    ServerName test.mijndomein1.info
</VirtualHost>
<VirtualHost <ip van kaart 2>:80>
    DocumentRoot /home/www2
    ServerName test.mijndomein2.info
</VirtualHost>
<VirtualHost <ip van kaart 2>:80>
    DocumentRoot /home/www3
    ServerName test.mijndomein3.info
</VirtualHost>
In bovenstaande moet de dns voor test.mijndomein1.info naar <ip van kaart 1> verwijzen en de dns voor test.mijndomein2.info en test.mijndomein3.info naar <ip van kaart 2> verwijzen.

zie verder: http://httpd.apache.org/docs/2.0/vhosts/examples.html


Offline poj

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #11 Gepost op: 2011/02/28, 19:37:51 »
Hoi Bram en Buzzin,

Helaas hebben jullie adviezen nog niet tot het gehoopte resultaat geleid. Wel vond ik dit aan het eind van de /etc/apache2/apache2.conf:
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/
<Directory "/home/www/www2">
</Directory>
NameVirtualHost 82.173.218.145


Enig idee wat dit doet? In dit bestand zie ik nergens dat sites-available wordt "include". Maar misschien moet dat ergens anders staan?

Overigens is het bestand /etc/apache2/httpd.conf helemaal leeg. Kan dat kwaad?

Tenslotte: in mapje sites-enabled zit een shortcut naar het bestand van sites-available.

@Buzzin
wat bedoel je met ip van kaart 1? Er zit maar één netwerkkaart in mijn server (=oude PC).
Als ik overal *:80 invul en de rest volgens jouw opgave kom ik weer bij de eerste instelling uit.
« Laatst bewerkt op: 2011/02/28, 19:48:57 door poj »

Offline Buzzin

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #12 Gepost op: 2011/03/01, 11:47:26 »
Eh dat was ik niet ;)

@Bram: je kunt wel met domeinnamen werken als naam van een virtualhost, daar zijn ze zelfs voor uitgevonden :) (meerdere domeinen op 1 server)

@poj: Die directory en Virtualhost onderaan je bestand kun je beter even uit zetten (# ervoor)
Het httpd.conf bestand hoort leeg te zijn, dat staat er nog voor terugwaardse compatibiliteit, maar word door apache2 niet meer gebruikt.
Die symlinks in sites-enabled hoort zo.

Je moet dus NIET overal *:80 invullen....dat kan maar 1 keer.
Football: A battle between two teams of mindless thugs over scraps of coloured cloth. Usually accompanied by the spectacle of 22 overpaid primadonnas kicking a ball on a field.
DebianDevuan, KDE & OperaVivaldi addict, RedHat Engineer

Offline grizzler

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #13 Gepost op: 2011/03/01, 18:40:55 »
je kunt wel met domeinnamen werken als naam van een virtualhost, daar zijn ze zelfs voor uitgevonden :) (meerdere domeinen op 1 server)
Alleen raadt Apache het af om dat met een domeinnaam in het VirtualHost-directive te doen ('not recommended' - zie http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost). Name-based virtual hosting doe je met een * of een IP-adres op die plaats en de domeinnaam in het ServerName-directive. Die suggestie zit zelfs in de voorbeelden in de meegeleverde httpd-vhosts.conf.

Citaat
Het httpd.conf bestand hoort leeg te zijn, dat staat er nog voor terugwaardse compatibiliteit, maar word door apache2 niet meer gebruikt.
Dat geldt blijkbaar alleen voor de versie uit de repository. In de versie van Apache zelf wordt het nog steeds gebruikt, samen met een stuk of tien optioneel te includen conf-bestanden, en ontbreken juist die sites-available en sites-enabled.

Citaat
Je moet dus NIET overal *:80 invullen....dat kan maar 1 keer.
In mijn (werkende) name-based opstelling zit *:80 in elk VirtualHost-directive.

Omdat mijn configuratie duidelijk niet standaard-Ubuntu is maar meer op standaard-Apache lijkt, aarzel ik om mijn oplossing aan te dragen. Punt is alleen dat die volgens mij min of meer doet wat poj wil...  =D

Enfin, ter kennisname dan maar. Kijk maar of je er iets aan hebt.

NameVirtualHost *:80

<VirtualHost *:80>
 DocumentRoot "/opt/htdocs"
 ServerName default
</VirtualHost>

<VirtualHost *:80>
 DocumentRoot "/opt/htdocs/een"
 ServerName mijndomein.info
 ServerAlias www.mijndomein.info
</VirtualHost>

<VirtualHost *:80>
 DocumentRoot "/opt/htdocs/twee"
 ServerName test.mijndomein.info
</VirtualHost>

Op deze manier komt alles wat op elk IP-adres binnenkomt in /opt/htdocs uit, behalve als de meegegeven domeinnaam mijndomein.info, www.mijndomein.info of test.mijndomein.info is. De eerste twee komen dan in /opt/htdocs/een uit en de laatste in /opt/htdocs/twee.
Dit werkt zowel binnen mijn LAN met een lokaal IP-adres en de bovengenoemde domeinnamen opgenomen in /etc/hosts, als via het WAN met mijn werkelijke IP-adres en een aantal domeinnamen van DynDNS, ChangeIP en No-IP.
« Laatst bewerkt op: 2011/03/01, 18:42:29 door grizzler »

Offline bram103

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #14 Gepost op: 2011/03/01, 19:04:22 »
Volgens mij klopt het verhaal van Grizzler helemaal.

Citaat
Omdat mijn configuratie duidelijk niet standaard-Ubuntu is maar meer op standaard-Apache lijkt, aarzel ik om mijn oplossing aan te dragen. Punt is alleen dat die volgens mij min of meer doet wat poj wil...  grin

Ubuntu volgt voor zover ik weet de Debian manier om Apache te configureren maar dat maakt voor de syntax van de configuratie zelf helemaal niets uit. Ik heb het op mijn werk op een Win 2003 server draaien en ook daar zit de virtual host truc precies hetzelfde in elkaar.

De truc met sites-available en sites-enabled vindt ik persoonlijk bijzonder handig je kunt een heleboel configuraties in sites-available zetten en ze vervolgens gebruiken of niet door een link in sites-enabled te zetten (of weer weg te halen).

Offline poj

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #15 Gepost op: 2011/03/01, 19:41:20 »
Beste Allemaal, en vooral Grizzle

Het is gelukt, op de één of andere manier lukt het nu wel zoals ik het wilde hebben. Wellicht door de regel: NameVirtualHost *.80 die ik bovenaan heb gezet (en was in een ander bestand NameVirtualHost xx.xx.xx.xx (=IP-nummer) en dat heb ik met # uitgezet.

Ander ding dat ik anders heb gedaan is, dat ik ik de DocumentRoot "/www/www2" tussen " " -tekens heb gezet.

Nog één puntje, maar ik vermoed dat dit een ander probleem is:
Als ik naar mijn IP-nummer ga of naar test.mijndomein.nl ga dan krijg ik de volgende foutmelding (zie plaatje: De URL is niet geldig en kan niet worden geladen.). De site wordt wel getoond, maar de foutmelding is natuurlijk wel irritant. Enig idee waar dit op slaat? Of is het een foutje in de HTML code?

Offline grizzler

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #16 Gepost op: 2011/03/01, 20:17:51 »
Het is gelukt, op de één of andere manier lukt het nu wel zoals ik het wilde hebben.
Mooi. :)

Citaat
Wellicht door de regel: NameVirtualHost *.80 die ik bovenaan heb gezet (en was in een ander bestand NameVirtualHost xx.xx.xx.xx (=IP-nummer) en dat heb ik met # uitgezet.
Zou zomaar kunnen. Er staat me bij dat die NameVirtualHost-waarde gelijk moet zijn aan de waarden in de opvolgende VirtualHost-directives willen de bijbehorende hosts ook worden gevonden (heb ik ergens zien staan, maar ik weet niet meer of dat in officiële documentatie was...).

Citaat
Ander ding dat ik anders heb gedaan is, dat ik de DocumentRoot "/www/www2" tussen " " -tekens heb gezet.
Ik geloof niet dat dat wat uitmaakt. In het overzicht van de beschikbare directives op de site van Apache staan op die plaats ook geen aanhalingstekens. Dat ik ze wel gebruik, komt door de voorbeelden in httpd-vhosts.conf waar ze ook in stonden.

Citaat
Nog één puntje, maar ik vermoed dat dit een ander probleem is:
Als ik naar mijn IP-nummer ga of naar test.mijndomein.nl ga dan krijg ik de volgende foutmelding (zie plaatje: De URL is niet geldig en kan niet worden geladen.). De site wordt wel getoond, maar de foutmelding is natuurlijk wel irritant. Enig idee waar dit op slaat?
Zou ik zo gauw niet weten. Ik heb dat in de praktijk geloof ik alleen maar gezien als de URL echt fout was en de pagina dus ook niet kon worden geladen.

Offline poj

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #17 Gepost op: 2011/03/01, 20:33:51 »
Hopelijk weet iemand anders antwoord op mijn laatste puntje.

Offline grizzler

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #18 Gepost op: 2011/03/01, 22:24:45 »
Het is een foutmelding van Firefox en schijnt meerdere oorzaken te kunnen hebben, zoals een probleem met een extensie of thema. Het kan ook een echte fout op een pagina zijn, zoals een onjuist gecodeerd teken in de URL van een link (bijvoorbeeld een 'losse' ampersand in plaats van &amp;).

Offline poj

  • Lid
  • Steunpunt: Nee
Re: apache server instellingen - virtual host
« Reactie #19 Gepost op: 2011/03/03, 13:36:44 »
@ Grizzle: Inderdaad een foute url op de site gaf de foutmelding. Inmiddels verholpen.

@ Iedereen bedankt voor de input.