Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: 1473#1473: *1 connect() failed (111: Connection refused) while connecting to ups  (Прочитано 2163 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Цитировать
2019/11/14 22:07:57 [error] 1473#1473: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.128.4.114, server: _, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "10.128.4.119"

запрос приходит на сервер ubuntu - 10.128.4.119, на котором стоит nginx, который должен переправить запрос на
http://127.0.0.1:8080/, на котором находится сервер приложений.

client: 10.128.4.114

server: _, - может этот параметр нужно настроить ?

server_name _;

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8080;
}

location /img/ {
alias /home/it/apps/uploads/;
}

что еще нужно настроить на nginx, и что это за ошибка.

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1175
    • Просмотр профиля
Это точно весь конфиг файл? Я не вижу тут listen - на каком порту работать?
Что касается ошибки, то проверьте локально на этой машине:
wget http://127.0.0.1:8080
Debian Testing (Gnome), Ubuntu Server 18.04

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
it@ubuntu-srv:~$  wget http://127.0.0.1:8080
--2019-11-19 05:46:54--  http://127.0.0.1:8080/
Подключение к 127.0.0.1:8080... ошибка: В соединении отказано.


(Нажмите, чтобы показать/скрыть)

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1175
    • Просмотр профиля
По-моему неправильный конфиг, слишком много там всего намешано. Посмотрите вложенный файл тут, такую же проблему решали: https://forum.ubuntu.ru/index.php?topic=308570.msg2401559#msg2401559

Пользователь добавил сообщение 19 Ноябрь 2019, 09:09:44:
Хотя подождите, у вас приложение то не работает на 127.0.0.1
Вот nginx и некуда перенаправлять.

Пользователь добавил сообщение 19 Ноябрь 2019, 09:11:50:
Попробуйте ещё:
telnet 127.0.0.1 8080Тоже локально, на самом сервере.
« Последнее редактирование: 20 Ноябрь 2019, 11:15:54 от m-svo »
Debian Testing (Gnome), Ubuntu Server 18.04

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
it@ubuntu-srv:~$ telnet 127.0.0.1 8080
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Пользователь добавил сообщение 20 Ноябрь 2019, 11:13:06:
Я переодически то могу с удаленной системы подключиться на сервер, то нет

локально на сервере при подключении на localhost:8080 - то же должно работать...

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1175
    • Просмотр профиля
ну да, ваш "сервер приложений" недоступен
пока с ним не решите проблему, с nginx нет смысла разбираться (может он и работает корректно)
Debian Testing (Gnome), Ubuntu Server 18.04

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
it@ubuntu-srv:~$ service tomcat status
Unit tomcat.service could not be found.

я перезагрузил сервер, удаленно с windows, развернул на сервере приложение, у которого при запуске, происходит установка встроенного сервера приложений и приложение стало доступно.

но я не вижу что tomcat запущен как служба ?

после перезагрузки сервера, у меня снова не будет доступно приложение и мне сново его придется разворачивать.

Что можно добавить в скрипт, чтобы после перезагрузке, встроенный tomcat, то же запускался ?

вот скрипт, который разворачивает приложение

#!/usr/bin/env sh

#очищаем целевой каталог перед развертывание приложения
mvn clean package

echo 'Copy files to deploy server'

#создаем набор нужных директорий


# scp - secure copy - Утилита для копирования файлов между удаленными машинами
# работает поверч ssh, поэтому нужено указывать секретный ключ, который мы ранее создали
# \ - Символ указывает переход на новую строку
#target - директория, где находится файл с артефактом приложения
#it@10.128.4.119:/home/it/ - указали имя пользователя, адрес хоста и директорию, куда нужно
# скопировать артефакт

scp -i ~/.ssh/id_rsa \
     target/twitter-0.0.1-SNAPSHOT.jar \
     it@10.128.4.119:/home/it/apps/deploy/


echo 'Restart server...'
sleep 5
echo '----------------'
# << EOF - указываем, что эта комбинация открывает поток на вход которого будут переданы данные
# в виде ssh -i ~/.ssh/id_rsa it@10.128.4.119
#  << EOF - после этого пишем ряд команд, которые должны будут выполниться на удаленном сервере
# pgrep name_process - Выполняет поиск процессов по указанному имени
# Xargs -  читает аргументы из стандартного ввода, разделенные пробелами или символами новой строки
# kill -9 - завершаем выбранные ранее процессы (по имени java)
# nohup — утилита, которая позволяет запустить команду,
# защищенную от зависания с выходом на non-tty (игнорирует потерю сигналов связи SIGHUP)
# java -jar twitter-0.0.1-SNAPSHOT.jar аргументы, команды nohup
# java -jar - запускает указанный артефакт на выполнение
# > log.txt - указываем файл, кужа нужно выводить логи, при запуске программы
#  & - указывает, что утилита nohup  будет работать в фоновом режиме и если сессия, в которой мы выполняем
# запуск приложения, будет закрыта, то выполение приложения продолжиться все равно
# EOF закрывает открытый ранее входной поток команды на удаленном сервере
ssh -i ~/.ssh/id_rsa it@10.128.4.119 << EOF


pgrep java | xargs pkill -9 -f java
nohup java -jar /home/it/apps/deploy/twitter-0.0.1-SNAPSHOT.jar > log.txt &

EOF

#Таким образом мы перезапустили сервер-приложений, tomcat
# для начала мы завершили все старые процессы, затем скопировали новый артефакт, который был
# развернут JVM и запущен на выполнение
#


echo 'Bye'

it@ubuntu-srv:~$ ps -ef | grep tomcat 
it        6133  4012  0 08:36 pts/1    00:00:00 grep --color=auto tomcat

it@ubuntu-srv:~$ ps -ef | grep java
it        5619     1  5 08:26 ?        00:00:31 java -jar /home/it/apps/deploy/twitter-0.0.1-SNAPSHOT.jar
it        6147  4012  0 08:37 pts/1    00:00:00 grep --color=auto java
it@ubuntu-srv:~$ ps -ef | grep logging
it        6152  4012  0 08:37 pts/1    00:00:00 grep --color=auto logging





Пользователь добавил сообщение 20 Ноябрь 2019, 11:41:07:
это после перезагрузки

it@ubuntu-srv:~$ ps -ef | grep logging
it        3052  3042  0 08:40 pts/2    00:00:00 grep --color=auto logging
it@ubuntu-srv:~$ ps -ef | grep java
it        3055  3042  0 08:40 pts/2    00:00:00 grep --color=auto java
it@ubuntu-srv:~$ ps -ef | grep tomcat 
it        3061  3042  0 08:40 pts/2    00:00:00 grep --color=auto tomcat
it@ubuntu-srv:~$

ну и приложение снова не доступно
« Последнее редактирование: 20 Ноябрь 2019, 11:41:36 от alex-sky »

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1175
    • Просмотр профиля
В принципе всё понятно, только сообщите, приложение разворачиваете от юзера it, верно? Без sudo.
Debian Testing (Gnome), Ubuntu Server 18.04

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
 ключ шифрования сделан под пользователем it

groups it
it : it adm cdrom sudo dip plugdev lxd

это все что могу пояснить
когда ключ создавал, то делал это от имени пользователя it без указания команды sudo

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 20 Ноябрь 2019, 12:26:13 от alex-sky »

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1175
    • Просмотр профиля
Тогда вам нужно для пользователя it создать демона, который будет стартовать при старте системы, и запускать java -jar /home/it/apps/deploy/twitter-0.0.1-SNAPSHOT.jar
Мануал тут

Не забудьте настроить автозапуск без логина пользователя.
Также нужно указать полный путь к яве, его можно узнать так:
which java
Debian Testing (Gnome), Ubuntu Server 18.04

 

Страница сгенерирована за 0.069 секунд. Запросов: 25.