Fórum Root.cz
Hlavní témata => Server => Téma založeno: 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:
<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
-
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.
-
To je překlep omlouvám se.
-
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í?
-
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í?
-
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.
-
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.
-
Predpokladam, ze cesty v konfigu jsi zmenil do spravne slozky pro kazdy projekt? A nazev je taky pro kazdy jiny
<Directory /var/www/example1.test>
DocumentRoot /var/www/example1.test/
ServerName figura.test
-
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...
-
Skus si nainstalovat Webmina pro správu toho virtuálního serveru. Pomocí něho pak nakonfiguruj ty virtuální weby.
-
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.
<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 a2ensite/a2dissite virtual_serve_conf_subor povolit alebo zakazat konkretny virtualny server.
Cez prikaz: apachectl configtest sa da otestovat spravnost kongiruacie.
Vystup z testu by mohol vypadat nejak takto:
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 a2dissite 000-default.conf cim sa zakaze predvolena konfiguracia z distribucie po instalacii. A ostatnu povolene iba virtualne servre, ktore chceme pouzivat.
-
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.