Deploying Jar на Linux-сервере с Nginx

2021.11.17  |  99

Размещение java-приложения в виде jar-файла и запуск на сервере за веб-сервером nginx

Создаем сервис:
nano /etc/systemd/system/demo.service

[Unit] 
Description=Demo Java App
After=syslog.target 
After=network.target[Service] 
User=username 
Type=simple  

[Service] 
ExecStart=/usr/bin/java -jar /var/www/sitename.com/demo.jar 
Restart=always 
StandardOutput=syslog 
StandardError=syslog 
SyslogIdentifier=demo 

[Install] 
WantedBy=multi-user.target
Делаем его автозапускаемым:
ln -s /etc/systemd/system/demo.service /etc/init.d/
update-rc.d demo.service defaults
Создаем прокси веб-конфиг для nginx:
nano /etc/nginx/sites-available/sitename.com.conf

server {
    server_name sitename.com;
    listen *:80;

    location ~* \.(svg|jpg|jpeg|gif|png|webp|ico|css|bmp|swf|js|html|txt|ejs|json)$ {
        root /var/www/sitename.com/public;
    }

    location / {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8081;
    }
}

Включаем созданный конфиг:
ln -s /etc/nginx/sites-available/sitename.com.conf /etc/nginx/sites-enable/
Перезапускаем веб-сервер для применения конфига:
systemctl restart nginx
Запускаем jar-службу:
systemctl start demo