Nelze spustit Tomcat 9

Při spuštění Tomcatu pomocí service tomcat9 start jsem dostával následující chybu:

WARNING: Unable to load server configuration from [/opt/tomcat9/conf/server.xml]
java.io.FileNotFoundException: /opt/tomcat9/conf/server.xml (Permission denied)
...
SEVERE: Cannot start server, server instance is not configured

Ani spuštění jako root, nebo změna chmod na souboru server.xml nepomohla. Nakonec stačilo přejít do složky se spouštěcími skripty .../tomcat9/bin a spustit startup.sh.

Ubuntu, Nginx a Tomcat

Nginx je webobý server, který má mít oproti Apache lepší výkon. Tomcat je webový kontejner, ve kterém běží Java webové aplikace. Tomcat po spuštění poslouchá na portu 8080. Pokud nasadíte Java webovou aplikaci na Tomcatu, budete muset pro přístup k ní za url dodat port 8080, takže url by vypadala následovně: www.mojeaplikace.cz:8080. Uživatel, připojující se k takovéto aplikaci, si něco takového určitě pamatovat nebude. Řešením je nainstalovat webový server (Apache, Nginx, …) a přesměrovat provoz na Tomcat. V tomto příspěvku ukáži konfiguraci Nginx na Ubuntu, kdy Nginx bude směrovat provoz z portu 80 na port 8080. Aplikace tedy bude přístupná na očekávané url www.mojeaplikace.cz.

Instalace Nginx

apt-get install nginx

Konfigurační soubor pro Nginx je /etc/nginx/sites-available/default.

server {
  listen          80;
  server_name     mojeaplikace.cz www.mojeaplikace.cz;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8080/;
  }
}

Je dobré si ověřit, že jste v konfiguračním souboru nic nepokopali

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Provedeme reload Nginx

systemctl reload nginx

Zdroj: djamware.com/post/…and-java-8-on-ubuntu-1604