Вы должны знать следующие факты:
Порты ниже 1024 могут быть открыты только пользователем root.
Запускать веб-приложение Spring Boot с привилегиями root — плохая идея. Потому что, если приложение скомпрометировано, злоумышленник получает привилегии root.
Одним из решений является запуск httpd-сервера Apache в качестве обратного прокси-сервера и перенаправление запроса на порт 80 на порт выше 1024 на локальном хосте. Для этого вы можете использовать директивуProxyPass
Apache.
Вот статья об этом методе:Использование Apache в качестве обратного прокси-сервера для Spring Boot Embedded Tomcat
Основная конфигурация Apache выглядит следующим образом:
ProxyPreserveHost on
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
Ваш сценарий представляет собой текстовый файл DOS, что означает, что он содержит символ возврата каретки (, который часто пишется\r
)в конце каждой строки. В текстовых файлах Unix этого нет, и когда система Unix выводит такой символ, позиция курсора перемещается в самое начало строки. Дальнейший вывод в эту строку перезапишет то, что было ранее выведено.
Преобразование скрипта в текстовый файл Unix решит вашу проблему:
$ bash -x script.sh
+++ date +%Y-%m-%d_%H-%m-%S
++ echo -n 2020-03-09_21-03-47
+ OUTFILE=$'2020-03-09_21-03-47\r'
+ ASD=$'DDD\r'
' echo -n 'DATE [2020-03-09_21-03-47
' echo -n 'DDD [DDD-03-47
$ dos2unix script.sh
dos2unix: converting file script.sh to Unix format...
$ bash -x script.sh
+++ date +%Y-%m-%d_%H-%m-%S
++ echo -n 2020-03-09_21-03-03
+ OUTFILE=2020-03-09_21-03-03
+ ASD=DDD
+ echo -n 'DATE [2020-03-09_21-03-03]'
DATE [2020-03-09_21-03-03]+ echo -n 'DDD [DDD]'
DDD [DDD]
(нет новой строки после вывода в последней строке из-за использованияecho -n
).
$ bash script.sh
DATE [2020-03-09_21-03-19]DDD [DDD]
(нет новой строки после вывода в последней строке из-за использованияecho -n
).