Linux+Apache+Tomcat+Vhost

Ściągamy Apache Httpd w wersji 2.4.4 z http://httpd.apache.org/download.cgi i wypakowujemy.

Instalujemy 2 biblioteki:

sudo apt-get install libapr1-dev
sudo apt-get install libaprutil1-dev

Przechodzimy do katalogu z Apache Httpd, wykonujemy polecenia:

./configure
make
sudo make install

Ściągamy mod-jk w wersji 1.2 z http://tomcat.apache.org/download-connectors.cgi i wypakowujemy.

Następnie przechodzimy do katalogu mod-jk/native, wykonujemy polecenia:

./configure --with-apxs=/usr/local/apache2/bin/apxs
make
sudo make install

Plik konfiguracyjny znajduje się w:

/usr/local/apache2/conf/httpd.conf

Następnie tworzymy nowy plik konfiguracyjny z tzw. worker’ami:

sudo kate /usr/local/apache2/conf/workers.properties

Wklejamy do niego (port do AJP znajdziemy w pliku katalog_tomcat/conf/server.xml):

worker.list=tomcat1

worker.tomcat1.type=ajp13
worker.tomcat1.port=8009
worker.tomcat1.host=localhost

Następnie otwieramy plik konfiguracyjny apache’a:

sudo kate /usr/local/apache2/conf/httpd.conf

Na samym końcu wklejamy:

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel emerg
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"

Następnie szukamy w tym samym pliku (httpd.conf) linii:

Listen 80

Pod nią wklejamy:

NameVirtualHost *:80

I usuwwamy komentarz z linii prowadzącej to pliku z VHOST’ami:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Lista wyjątków przypisana do kodów błędów HTTP

  • MissingServletRequestParameterException 400 (Bad Request)
  • ServletRequestBindingException 400 (Bad Request)
  • TypeMismatchException 400 (Bad Request)
  • HttpMessageNotReadableException 400 (Bad Request)
  • MethodArgumentNotValidException 400 (Bad Request)
  • MissingServletRequestPartException 400 (Bad Request)
  • NoSuchRequestHandlingMethodException 404 (Not Found)
  • HttpRequestMethodNotSupportedException 405 (Method Not Allowed)
  • HttpMediaTypeNotSupportedException 415 (Unsupported Media Type)
  • ConversionNotSupportedException 500 (Internal Server Error)
  • HttpMessageNotWritableException 500 (Internal Server Error)

http://static.springsource.org/spring/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/support/DefaultHandlerExceptionResolver.html

Linux+Tomcat+VirtualHost

  1. Pobieramy ze strony http://httpd.apache.org/download.cgi serwer apache httpd. Wersja 2.2.x wystarczy.
  2. Wypakować, przejść do folderu httpd-2.2.x
  3. Wpisać komendę
    ./configure --prefix=/usr/local/apache --enable-rewrite=shared --enable-proxy=shared
  4. Po pomyślnym wykonaniu komendy, należy zainstalować aplikację: sudo make i sudo make install
  5. Pobieramy mod_jk ze strony http://tomcat.apache.org/download-connectors.cgi
  6. Wypakować, przejść do folderu tomcat-connectors-x/native
  7. Wpisać komendę
    ./configure --with-apxs=/usr/local/apache/bin/apxs

    (wymagany jest g++ [sudo apt-get install g++])

  8. Po pomyślnym wykonaniu komendy, należy zainstalować aplikację: sudo make i sudo make install
  9. Następnie przechodzimy do katalogu /usr/local/apache/conf/
  10. Tworzymy plik workers.properties: sudo gedit workers.properties
  11. Wpisujemy do niego:
    worker.list=tomcat1worker.tomcat1.type=ajp13
     worker.tomcat1.port=8009
     worker.tomcat1.host=localhost</pre> Port pochodzi z pliku /../apache-tomcat/conf/server.xml -> <pre><!-- Define an AJP 1.3 Connector on port 8009 -->
     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /></pre></li>
    	<li>Następnie otwieramy plik /usr/local/apache/conf/httpd.conf i przechodzimy na koniec pliku</li>
    	<li>Wklejamy następujący kod: LoadModule jk_module modules/mod_jk.soJkWorkersFile conf/workers.propertiesJkLogFile logs/mod_jk.log
     JkLogLevel emerg
     JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
     JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
     JkRequestLogFormat "%w %V %T"
  12. Teraz można w końcu skonfigurować Vhosta 😀
  13. W pliku /usr/local/apache/conf/httpd.conf szukamy linii z Listen 80
  14. Pod nią wklejamy NameVirtualHost *:80
  15. A następnie konkretną konfigurację VHOST: 
    <VirtualHost *:80>
    ServerName app.adres.pl
    JkMount  /app* tomcat1
    </VirtualHost></div>
    
  16. Startujemy apache httpd /usr/local/apache/bin/ -> sudo ./apachectl start
  17. Można testować 😀