Tikan asentaminen Dockeriin

Piti pitkästä aikaa asennella Apachen Tikaa Docker-konttiin palvelimelle. Edellisestä kerrasta oli vuosia, joten olin jo ehtinyt unohtaa, miten se tehdään. Siltä varalta, että joudun hommaa taas tekemään, kirjaanpa ohjeet ylös.

Itse Tikan asentaminen on helppoa. Asenna Docker ja ota sillä Tika-kontti haltuun. Jotta kontti käynnistyy aina uudestaan, se ajetaan näin:

docker run -d --restart always -p 9998:9998 apache/tika:<tag>

Tällä saa Tikan toimimaan ja jos ei tarvitse SSL-yhteyksiä, tämä riittää. Jos sen sijaan tarvitsee HTTPS-suojaukset käyttöön, pitää viritellä Nginx ja Certbot.

Asenna Nginx perusasetuksillaan. Certbot asennetaan näin:

apt install certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com

Palomuuri kannattaa olla:

ufw allow 'Nginx Full'
ufw delete allow 'Nginx HTTP'

Huolehdi myös, että ufw sallii SSH-yhteydet läpi (ssh), muuten lukitset itsesi ulos palvelimeltasi.

Sen jälkeen Nginxin asetuksia pitää säätää niin, että Tikalle tehdään reverse proxy ohjaamaan liikennettä.

Nginxin asetustiedoston pitäisi näyttää suunnilleen tältä:

upstream tika {
    server localhost:9998;
}

server {
    # Isojen tiedostojen käsittelyä helpottaa.
	client_max_body_size 256M;

	root /var/www/html;

	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;

	server_name www.example.com;

	location / {
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header Host $http_host;
		proxy_set_header X-NginX-Proxy true;
        proxy_pass http://tika/;
          
        # On tärkeää, että tätä oletuksena mukana olevaa riviä ei ole:
		# try_files $uri $uri/ =404;
    
        listen [::]:443 ssl ipv6only=on; # managed by Certbot
        listen 443 ssl; # managed by Certbot
        ssl_certificate ... # managed by Certbot
        ssl_certificate_key ... # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
	}
}

server {
    if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

	listen 80 default_server;
	listen [::]:80 default_server;

	server_name www.example.com;
    return 404; # managed by Certbot
}

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

This site uses Akismet to reduce spam. Learn how your comment data is processed.