Více hostů na jendom serveru (Apache)

Více hostů na jendom serveru (Apache)
« kdy: 15. 07. 2021, 13:57:44 »
Ahoj,

mám ve virtuálu Debian (turnkeylinux) a chtěl bych na apachi rozchodit několik webů. Koukal jsem na dokumentaci https://httpd.apache.org/docs/2.4/vhosts/examples.html, ale jestli správě rozumím, tak oni mají všechny hosty v jednom souboru, ale mi se v adresáři /etc/apache2/sites-available vytvaří vlastní soubor *.conf pro každého virutálního hosta, takže mám např. example1.conf a example2.conf a v každém z těch souborů mám něco takového:

Kód: [Vybrat]
<VirtualHost *:443>
    SSLEngine on
    ServerAdmin admin@example1.test
    DocumentRoot /var/www/example1.test/
    ServerName figura.test
</VirtualHost>

<Directory /var/www/example1.test>
    Options +FollowSymLinks
    Options -Indexes
    AllowOverride All
    order allow,deny
    allow from all
</Directory>

Problém je, že ač vše vypadá v pořádku, tak na obou doménách example1.test i example2.test se zobrazuje obsah jen toho prvního webu i když DocumentRoot mají odlišný. Když jsem pak zkoušel přidat do konfiguračních souborů Listen 443, tak mi apache začal hlásit chybu Cannot define multiple Listeners on the same IP:port, což mne tedy mate a nerozumím v čem je chyba :(

Může mi někdo poradit? Děkuji
« Poslední změna: 15. 07. 2021, 14:00:18 od Radim R »


Re:Více hostů na jendom serveru (Apache)
« Odpověď #1 kdy: 15. 07. 2021, 14:14:22 »
Je to překlep (resp. přehlédnutí při psaní příkladu) v ServerName "figura.test"? Musí tam být uvedená příslušná doména, aby fungovalo SNI, jinak se použije první virtuál.

Re:Více hostů na jendom serveru (Apache)
« Odpověď #2 kdy: 15. 07. 2021, 14:30:08 »
To je překlep omlouvám se.

Re:Více hostů na jendom serveru (Apache)
« Odpověď #3 kdy: 15. 07. 2021, 15:23:06 »
Nápad:

Nemůže být problém v tom, že nemám pro každého hosta vlastní SSL certifikát, ale používá se nějaký výchozí?

Re:Více hostů na jendom serveru (Apache)
« Odpověď #4 kdy: 15. 07. 2021, 20:25:06 »
Certifikát s tím nesouvisí, to je chyba, kterou budete řešit až jako další.

Proč do toho vrtáte, když o tom nic nevíte? Vy to nějak rozchodíte, ale zítra to něco napadne a v lepším případě budete dva roky rozesílat spam. Lidé jako vy jsou hrozným prokletím. Auto jste si také zkoušel postavit vlastní? Prošlo technickou?

Nápad:

Nemůže být problém v tom, že nemám pro každého hosta vlastní SSL certifikát, ale používá se nějaký výchozí?


Re:Více hostů na jendom serveru (Apache)
« Odpověď #5 kdy: 15. 07. 2021, 20:56:07 »
Ještě další detail. Povolil jste ten druhý virtuál? Pomocí a2ensite resp. symlinkem z /etc/apache2/sites-available do /etc/apache2/sites-enabled? A reloadem Apache.
PS: to je hlavní důvod, proč se dělají konfigurační soubory per virtuál: aby se daly jednoduše vypínat/zapínat.
« Poslední změna: 15. 07. 2021, 21:00:19 od lazywriter »

Re:Více hostů na jendom serveru (Apache)
« Odpověď #6 kdy: 16. 07. 2021, 07:56:38 »
Certifikát s tím nesouvisí, to je chyba, kterou budete řešit až jako další.

Proč do toho vrtáte, když o tom nic nevíte? Vy to nějak rozchodíte, ale zítra to něco napadne a v lepším případě budete dva roky rozesílat spam. Lidé jako vy jsou hrozným prokletím. Auto jste si také zkoušel postavit vlastní? Prošlo technickou?

Nápad:

Nemůže být problém v tom, že nemám pro každého hosta vlastní SSL certifikát, ale používá se nějaký výchozí?

Hned v úvodu příspěvku píšu, že jde o virtuální stroj, doplním tedy: Virtualbox, není to produkční server, ale vývojový, určený jednak pro tvorbu webů a jednak pro to, abych se naučil i něco nového. Já chápu, že vy se nic učit nemusíte, stačí vám lusknout prstem a můžete jít operovat na neurochirurgii, ale my méně šťastní se učíme, zkoušíme, děláme při tom chyby a když něco nevíme, nebojíme se zeptat.

Takže věřím, že problematice plně rozumíte a jsem rád za takové odborníky, ale zároveň nestojím o vaši radu, ostatně kdyby jste radit chtěl, tak byste nenapsal tak arogantní nesmysl.

Ještě další detail. Povolil jste ten druhý virtuál? Pomocí a2ensite resp. symlinkem z /etc/apache2/sites-available do /etc/apache2/sites-enabled? A reloadem Apache.
PS: to je hlavní důvod, proč se dělají konfigurační soubory per virtuál: aby se daly jednoduše vypínat/zapínat.


Ano i v sites-enabled oba virtuály povoleny jsou. Mne právě trochu zaráží, že se to chová jako by bylo vše nastaveno v pořádku a nikde nevidím, že by se to vzájemně nějak "bilo". Očekával bych, že tam bude nějaké hlášení chyby, když bude něco v nepořádku.

Re:Více hostů na jendom serveru (Apache)
« Odpověď #7 kdy: 16. 07. 2021, 09:16:03 »
Predpokladam, ze cesty v konfigu jsi zmenil do spravne slozky pro kazdy projekt? A nazev je taky pro kazdy jiny

Kód: [Vybrat]
<Directory /var/www/example1.test>
 DocumentRoot /var/www/example1.test/
ServerName figura.test
Když chceš, dokážeš vše!

McFly

  • *****
  • 590
    • Zobrazit profil
    • E-mail
Re:Více hostů na jendom serveru (Apache)
« Odpověď #8 kdy: 16. 07. 2021, 10:25:26 »
Já chápu, že vy se nic učit nemusíte, stačí vám lusknout prstem a můžete jít operovat na neurochirurgii, ale my méně šťastní se učíme, zkoušíme, děláme při tom chyby a když něco nevíme, nebojíme se zeptat.

Takže věřím, že problematice plně rozumíte a jsem rád za takové odborníky, ale zároveň nestojím o vaši radu, ostatně kdyby jste radit chtěl, tak byste nenapsal tak arogantní nesmysl.

To jsou poněkud silná slova. Já kolegu plně chápu, napsal bych to zřejmě stejně. V práci jsem řešil už mnoho problémů, které byly vyvolány tím, že dodavatelská firma měla něco na dodaném serveru nastaveno špatně, něco neznala nebo na to úplně kašlala a já si kolikrát říkal, jak takhle nastavený server vůbec mohli pustit do produkce. :D Asi jsem v tomto směru perfekcionista.

Btw hoď sem oba konfigurační soubory přesně, jak jsou na serveru. Na svých serverech mám všechny virtuály definovány v jednom souboru a deaktivovat je mohu pouhým zakomentováním, což mi přijde lepší, ale proti gustu Debianu...

Re:Více hostů na jendom serveru (Apache)
« Odpověď #9 kdy: 16. 07. 2021, 11:03:53 »
Skus si nainstalovat Webmina pro správu toho virtuálního serveru. Pomocí něho pak nakonfiguruj ty virtuální weby.

Re:Více hostů na jendom serveru (Apache)
« Odpověď #10 kdy: 16. 07. 2021, 11:46:09 »

Pre fungovanie viacerych virtualnych domen na jednom apache2 servri su dolezite tieto veci:

- kazda domena musi mat unikanty ServerName a DokumentRoot musi smerovat do ineho root adresara.
- kazda domena musi mat dns zaznam, bez toho sa vzdy bude nacitavat iba jedna domena a to vzdy ta,
ktora je nakonfigurovana ako prva. To iste plati, ak sa k domene pristupuje cez ip adresu servra.
- ssl certifikat nema na to vplyv, moze sa pouzit na obe domeny, avsak pri generovani treba oba hosty uviest v certifikate. Alebo pre kazdy vytvorit samostatne certifikat.

Nizsie uvadzam priklad configov pre dve domeny bez ssl.

Kód: [Vybrat]

<VirtualHost *:80>
    DocumentRoot "/www/example1"
    ServerName www.example.com

    # Other directives here ...
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/www/example2"
    ServerName www.example.org

    # Other directives here ...
</VirtualHost>

Co sa tyka toho, ci su domeny v jednom hoste alebo vo viacerych je tiez irelevatne. Apache server si ich nacita v oboch formach. Avak z pohladu administratora je lepsie mat pre kazdy virtualny server samostatne konfiguracny subor v SiteAvailable zlozke.

Cez prikaz
Kód: [Vybrat]
a2ensite/a2dissite virtual_serve_conf_subor   povolit alebo zakazat konkretny virtualny server.
Cez prikaz:
Kód: [Vybrat]
apachectl configtest sa da otestovat spravnost kongiruacie.

Vystup z testu by mohol vypadat nejak takto:

Kód: [Vybrat]
root@server:# apachectl configtest
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/conf-enabled/vhosts.conf:1
Syntax OK

Osobne odporucam spravit
Kód: [Vybrat]
a2dissite 000-default.conf cim sa zakaze predvolena konfiguracia z distribucie po instalacii. A ostatnu povolene iba virtualne servre, ktore chceme pouzivat.

Re:Více hostů na jendom serveru (Apache)
« Odpověď #11 kdy: 16. 07. 2021, 13:31:03 »
Já chápu, že vy se nic učit nemusíte, stačí vám lusknout prstem a můžete jít operovat na neurochirurgii, ale my méně šťastní se učíme, zkoušíme, děláme při tom chyby a když něco nevíme, nebojíme se zeptat.

Takže věřím, že problematice plně rozumíte a jsem rád za takové odborníky, ale zároveň nestojím o vaši radu, ostatně kdyby jste radit chtěl, tak byste nenapsal tak arogantní nesmysl.

To jsou poněkud silná slova. Já kolegu plně chápu, napsal bych to zřejmě stejně. V práci jsem řešil už mnoho problémů, které byly vyvolány tím, že dodavatelská firma měla něco na dodaném serveru nastaveno špatně, něco neznala nebo na to úplně kašlala a já si kolikrát říkal, jak takhle nastavený server vůbec mohli pustit do produkce. :D Asi jsem v tomto směru perfekcionista.

Btw hoď sem oba konfigurační soubory přesně, jak jsou na serveru. Na svých serverech mám všechny virtuály definovány v jednom souboru a deaktivovat je mohu pouhým zakomentováním, což mi přijde lepší, ale proti gustu Debianu...

To je myslím adekvátní reakce na člověka, který vůbec netuší která bije, ale má hned jasno a začne druhého kritizovat. Pravda, mne nenapadlo, že z těch prvních slov mého dotazu nebude jasné, že se nesnažím rozjet konkurenci AWS, ale chci si zkoušet a něco nového se naučit, to ale přeci neznamená, že bych se hned do takového člověka navezl a začal soudit. Přijde mi to zcestné a hlavně pokrytecké.

Skus si nainstalovat Webmina pro správu toho virtuálního serveru. Pomocí něho pak nakonfiguruj ty virtuální weby.
Ano, přes Webmin jsem nastavoval jen jsem pak zkoušel upravovat i přímo config soubory, protože různé návody to řeší přímo přes configy a ne přes webmin.


Pre fungovanie viacerych virtualnych domen na jednom apache2 servri su dolezite tieto veci...


Děkuji za obsáhlou odpověd.

VYŘEŠENO
Problém byl v mixu domén S a BEZ www. Úplná hloupost, jsem si toho vědom, holt se tak někdy stane.

Všem děkuji za pomoc.