Konfiguracja Virtual Hosts & Apache Tomcat & Protokołu AJP


Konfiguracja Virtual Hosts & Apache Tomcat & Protokołu AJP

Dzisiejszy wpis pokaże w jaki sposób opublikować projekt aplikacji webowej spakowanej do pliku WAR na serwerze Apache Tomcat z użyciem wirtualnych hostów oraz protokołu AJP. W opisany niżej sposób wdrożona została aplikacja https://unicode-converter.javaleader.pl/ – więcej o aplikacji można dowiedzieć się na stronie wpisu: https://javaleader.pl/2019/06/11/konwersja-znakow-unicode/.

Konfiguracja pliku /etc/apache2/sites-available/000-default.conf – przekierowanie typu 301 do https:

ProxyRequests Off
ProxyPreserveHost on

<VirtualHost example.pl:80>

    ProxyRequests  off
    ServerName     example.pl	
    Redirect 301 / https://example.pl

</VirtualHost>

Konfiguracja HTTPS – https://javaleader.pl/2019/06/07/certyfikat-ssl-na-vps/:

<VirtualHost example.pl:443>

    ServerName  example.pl
    ServerAlias example.pl
    SSLEngine on

    SSLProtocol all -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 
                    EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 
                    EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES 
                    !MD5 !EXP !PSK !SRP !DSS !RC4"

    SSLCertificateChainFile /etc/letsencrypt/live/example.pl/fullchain.pem
    SSLCertificateFile      /etc/letsencrypt/live/example.pl/fullchain.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/example.pl/privkey.pem

    ProxyRequests On
    ProxyVia On
	
    ProxyPass        / ajp://localhost:8009/
    ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>

Można również dodać nazwę aplikacji dostępnej na serwerze Apache Tomcat:

ProxyRequests On
ProxyVia On
	
ProxyPass        / ajp://localhost:8009/example-app-0.0.1-SNAPSHOT/
ProxyPassReverse / ajp://localhost:8009/example-app-0.0.1-SNAPSHOT/

Konfiguracja pliku /apache-tomcat-8.0.30/conf/server.xml:

Protokół Apache JServ (AJP) to metoda umożliwiająca komunikację serwera webowego np. Apache Web Server z serwerem aplikacji np. Apache Tomcat.

...
<Service name = "Catalina">
...
<Connector port="8090" protocol = "HTTP/1.1" 
              connectionTimeout = "20000" 
              URIEncoding       = "UTF-8"
              redirectPort      = "8443"  
	      maxThreads        = "300"  />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />
...
</Service>
...
 ...
<Engine name="Catalina" defaultHost="localhost">
    ...
    <Valve className="org.apache.catalina.valves.RemoteIpValve"
          internalProxies       = ".*"
          remoteIpHeader        = "x-forwarded-for"
          remoteIpProxiesHeader = "x-forwarded-by"
          protocolHeader        = "x-forwarded-proto"
    />

    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
       <Valve className = "org.apache.catalina.valves.AccessLogValve" 
              directory = "logs"
              prefix    = "localhost_access_log" suffix=".txt"
              pattern   = "%h %l %u %t &quot;%r&quot; %s %b" />		   
    </Host> 
</Engine>
...


Leave a comment

Your email address will not be published.


*