Я получал эту ошибку при запуске systemctl restart tomcat
в моем $CATALINA_HOME/logs/catalina.out
лог-файл: https://pastebin.com/Cpfs9xCk
Итак, я подписался на этот пост в Интернете: https://confluence.atlassian.com/confkb/permission-denied-error-when-binding-a-port-290750651.html
- Если вы используете Linux 2.6.24 или новее, вы можете настроить возможность файла для исполняемого файла java, чтобы предоставить повышенные привилегии, позволяющие открывать только привилегированные порты, и никаких других привилегий суперпользователя:
setcap cap_net_bind_service + ep / path / to / bin / java После этого вы можете заметить ошибки при запуске Java, например:
$ java -version / path / to / bin / java: ошибка при загрузке общих библиотек: libjli.so: невозможно открыть файл общих объектов: нет такого файла или каталога Это означает, что библиотека импортируется из динамического пути, а не в доверенный путь ld.so. Видеть http://bugs.sun.com/view_bug.do?bug_id=7157699 для подробностей. Чтобы исправить это, вам нужно найти библиотеку и добавить ее путь в конфигурацию ld.so. Обратите внимание, что ниже приведен пример, который может отличаться в зависимости от дистрибутива Linux. Замените JAVA_HOME на правильное местоположение:
$ найти JAVA_HOME -name 'libjli.so' JAVA_HOME / lib / amd64 / jli / libjli.so
echo "JAVA_HOME / lib / amd64 / jli"> /etc/ld.so.conf.d/java-libjli.conf ldconfig -v После настройки всего этого вы должны убедиться, что Confluence запускает java только с прямым двоичным кодом путь, а не через символическую ссылку, иначе возможность не будет задействована.
Итак, я выполнил эту команду: setcap cap_net_bind_service + ep /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
И я получаю то, что написано, что могу получить:
$CATALINA_HOME/logs/catalina.out
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
Я сделал то, что они сказали, чтобы исправить это, но он все еще не работает, и я все еще получаю указанную выше ошибку:
$ find $JAVA_HOME -name 'libjli.so'
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib/amd64/jli/libjli.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/lib/amd64/jli/libjli.so
У меня почему-то их две. Я создал этот файл с указанными путями, но я все еще получаю сообщение об ошибке, и мой кот не запускается.
$ cat /etc/ld.so.conf.d/java-libjli.conf
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib/amd64/jli
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/lib/amd64/jli
Sofar Я добавляю полный способ для части nginx, так как apache-tomcat был решен переустановкой
mkdir / var / кеш / nginx / кеш
chown nginx: nginx / var / кеш / nginx / кеш
Теперь отредактируйте nginx.conf под разделом http.
###New cache settings as default
proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=hd_cache:10m max_size=10g inactive=2d use_temp_path=off;
proxy_cache_methods GET HEAD POST;
proxy_cache_valid 200 302 3d;
proxy_cache_valid 404 1m;
отредактируйте /etc/nginx/sites-avaible/yoursite.com
#http to https redirect
server {
server_name yoursite.com *.yoursite.com;
listen 80;
return 301 https://$host$request_uri;
}
#https server
server {
proxy_read_timeout 3600;
listen 443 ssl http2;
server_name yoursite.com *.yoursite.com;
#a special location in case don't cache this file can be deleted
location updater/serversettings.xml {
expires -1;
add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
}
#The root/rest will be redirected
location / {
proxy_cache hd_cache;
proxy_set_header X-Cache-Status $upstream_cache_status;
proxy_cache_valid 200 1w;
proxy_pass https://10.10.200.4;
proxy_set_header Host $http_host;
proxy_buffers 16 8m;
proxy_buffer_size 2m;
gzip on;
gzip_vary on;
gzip_comp_level 9;
gzip_proxied any;
}
#SSL Cert section, as we require ssl, using certbot LetsEncrypt
ssl_certificate /etc/letsencrypt/live/yoursite.com-0001/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/yoursite.com-0001/privkey.pem; # managed by Certbot
}
Теперь включите этот сайт.
ln -s /etc/nginx/sites-avaible/yoursite.com /etc/nginx/sites-enabled/yoursite.com
и беги
перезагрузка сервиса Nginx
Эта установка отлично работает для сайта WordPress, я обнаружил, что счетчик скорости страницы 95+