Puncte:0

Care este o practică bună atunci când setați serverul www vs. non-www (apache)?

drapel us

Am încercat să configurez un site web non-www pe Ubuntu 18.04 cu Apache 2.4 și am reușit să fac lucrurile să funcționeze, https://example.me Merge bine. Dar, www.example.me subdomeniul este și el activ (pentru că am adăugat ServerAlias). The https://www.example.me se deschide, de asemenea, și nu arată niciun certificat, ceea ce mă face confuz - nu ar trebui să fie redirecționat către https://example.com ? Care este o practică bună aici - ar trebui să am atât subdomenii www, cât și non-www și un fișier conf separat pentru fiecare? Ar trebui să folosesc doar unul dintre ele cu redirecționare permanentă? De ce redirecționarea nu funcționează aici, am nevoie de altă directivă?

Salutări calde.

<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/mysite.me.crt
        SSLCertificateKeyFile /etc/apache2/ssl/mysite.me.key
        SSLCertificateChainFile /etc/apache2/ssl/mysite.me.crt
        DocumentRoot /var/www/html
        ServerName https://example.me
        ServerAlias www.example.me
        UseCanonicalName Off

        ProxyPreserveHost On
        ProxyRequests On
        ProxyVia On

        #ErrorLog /var/log/httpd/tomcat.error.log
        #CustomLog /var/log/httpd/tomcat.log combined

       <Proxy *>
               Order deny,allow
               Allow from all
       </Proxy>
        Include /etc/apache2/sites-available/redirect.conf

        ProxyPass / ajp://localhost:8009/
        ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName example.me
        DocumentRoot /var/www/html
        UseCanonicalName Off
        Redirect permanent "/" "https://example.me/"

        ProxyPreserveHost On
        ProxyRequests On
        ProxyVia On

        #ErrorLog /var/log/httpd/tomcat.error.log
        #CustomLog /var/log/httpd/tomcat.log combined

       <Proxy *>
               Order deny,allow
               Allow from all
       </Proxy>
        Include /etc/apache2/sites-available/redirect.conf

        ProxyPass / ajp://localhost:8009/
        ProxyPassReverse / ajp://localhost:8009/

        #ProxyPass / http://localhost:8080/
        #ProxyPassReverse / http://localhost:8080/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
drapel in
Dacă doriți să știți de ce redirecționarea nu funcționează, ar trebui să includeți fișierul de configurare a redirecționării în întrebare.
c.mtd17 avatar
drapel us
Acea redirecționare conține aproximativ două mii de reguli cu redirecționare de la site-ul vechi la cel nou.
Puncte:0
drapel cn
Bob

În primul rând, rețineți că redirecționările permanente sunt stocate în cache de browserul dvs. web, așa că dacă ați făcut o modificare și testați o configurație modificată, luați măsuri de precauție și/sau ajustați metodologia de testare. Mai multe despre asta Aici.


IMHO, configurația dvs. este, de asemenea, plină de erori și presupuneri incorecte.


NU ACTIVAȚI/PERMISI solicitările de proxy!!!

    ProxyPreserveHost activat
    ProxyRequests activat
    ProxyVia activat
   <Proxy *>
           Comanda refuzată, permiteți
           Permite de la toți
   </Proxy>

Directivele de mai sus sunt de a crea un proxy înainte. Și mai rău, este deschis proxy, care poate și va fi abuzat de oricine dorește să-și ascundă adresa IP folosind serverul dvs. web.

Tu nu e nevoie ProxyRequests activat Pentru o verso proxy si ProxyPass directive de lucru.

Vă rog să le eliminați.


În HTTP VirtualHost

Când aveți un singur VirtualHost, acesta devine VirtualHost implicit (pentru acel port și adresa). O descriere mai lungă Aici. Deci, dacă nu aveți blocuri suplimentare VirtualHost definite, această singură intrare:

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName example.me

va fi folosit pentru toate solicitările http simple, adică ambele http://example.me/some-page.htm?foo=bar , http://www.example.me , http://your.ip-address/ etc. Că VirtualHost va fi folosit chiar și atunci când nu există un explicit ServerAlias ​​www.example.com desemnând www.example.com ca nume de gazdă alternativ pentru acel VirtualHost particular.

 Redirecționează permanent „/” „https://example.me/”

Instruiește că toate solicitările vor avea ca rezultat un răspuns de redirecționare către https://example.me/ cu alte cuvinte:

 http://example.me/some-page.htm?foo=bar ==> https://example.me/some-page.htm?foo=bar
 http://www.example.me ==> https://example.me/
 http://your.ip-address/bob/is.awe-some ==> https://example.me/bob/is.awe-some

Când redirecționați totul, nu are nici un sens să aveți apoi alte directive destinate în mod normal să afișeze conținut în acel VirtualHost, astfel încât să puteți omite DocumentRoot, ProxyPass etc și păstrați un http VirtualHost simplu minim:

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName example.me
        UseCanonicalName Off

        Redirect permanent "/" "https://example.me/"

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

În VirtualHost-ul dvs. HTTPS, același lucru este valabil: dacă nu există alte VirtualHos-uri, acesta va fi implicit folosit pentru orice solicitare.

Singurul lucru este, desigur, certificatul TLS de server; care este valabil numai pentru numele de gazdă incluse acolo, alte nume de gazdă vor avea ca rezultat o eroare/avertisment de certificat nevalid.

Probabil va trebui să verificați conținutul fișierului pe care îl includeți aici:

Includeți /etc/apache2/sites-available/redirect.conf
c.mtd17 avatar
drapel us
Mulțumesc Bob pentru o explicație atât de detaliată. De fapt, folosesc proxy pentru Tomcat și alte aplicații...Am „moștenit” acest server de la altcineva și încerc să văd ce este o practică bună și cum să o configurez și de ce este prezentă avertismentul de certificat nevalid cu www.example.me. Poate îl vezi în această configurație? Ar trebui să adaug un alt virtualhost pentru www și un certificat de link acolo? Redirect.conf conține aproximativ două mii de reguli pentru redirecționarea datelor de la vechiul la noul site...
drapel cn
Bob
Nu trebuie să aveți un proxy direct activat când utilizați un proxy invers sau ajp

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.