Fórum Root.cz

Hlavní témata => Server => Téma založeno: Radim R 15. 07. 2021, 13:57:44

Název: Více hostů na jendom serveru (Apache)
Přispěvatel: Radim R 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
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: lazywriter 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.
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: Radim R 15. 07. 2021, 14:30:08
To je překlep omlouvám se.
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: Radim R 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í?
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: veskotskujehnusne 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í?
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: lazywriter 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.
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: Radim R 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.
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: Screemy 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
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: McFly 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...
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: milkor 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.
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: Milan Cagap 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.
Název: Re:Více hostů na jendom serveru (Apache)
Přispěvatel: Radim R 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.