Проблема с загрузкой веб-приложения – 403 Запрещено

Вопрос или проблема

Я установил в Centos 9 Java, Tomcat 10 и MySQL, развернул свое веб-приложение, затем внутри веб-приложения Tomcat у меня появился каталог моего веб-приложения. Я думаю, что все в порядке, но получаю “403 Forbidden”, когда ввожу имя моего домена в браузере. Я искал в Google и увидел, что одна из причин этой проблемы — это разрешения для каталога, но у пользователя tomcat есть разрешение для каталога tomcat.
Каталог:

ls -l /opt/tomcat/
total 136
drwxr-x---. 2 tomcat tomcat  4096 Jan 14 08:34 bin
-rw-r-----. 1 tomcat tomcat 21039 Dec  5 13:01 BUILDING.txt
drwx------. 3 tomcat tomcat  4096 Jan 14 09:07 conf
-rw-r-----. 1 tomcat tomcat  6166 Dec  5 13:01 CONTRIBUTING.md
drwxr-x---. 2 tomcat tomcat  4096 Jan 14 08:34 lib
-rw-r-----. 1 tomcat tomcat 60393 Dec  5 13:01 LICENSE
drwxr-x---. 2 tomcat tomcat   132 Jan 28 08:04 logs
-rw-r-----. 1 tomcat tomcat  2333 Dec  5 13:01 NOTICE
-rw-r-----. 1 tomcat tomcat  3298 Dec  5 13:01 README.md
-rw-r-----. 1 tomcat tomcat  6776 Dec  5 13:01 RELEASE-NOTES
-rw-r-----. 1 tomcat tomcat 16109 Dec  5 13:01 RUNNING.txt
drwxr-x---. 2 tomcat tomcat    48 Jan 28 08:03 temp
drwxr-x---. 8 tomcat tomcat   125 Jan 14 10:01 webapps
drwxr-x---. 3 tomcat tomcat    22 Jan 14 09:07 work

Nginx itcmedbr.conf:

server {
  2
  3 server_name     ipaddress
  4
  5 root /opt/tomcat/webapps/itcmedbr-1.0;
  6 index index.jsp;
  7
  8 server_name itcmedbr.com www.itcmedbr.com;
  9
 10
 11     listen [::]:443 ssl ipv6only=on; # managed by Certbot
 12     listen 443 ssl; # managed by Certbot
 13     ssl_certificate /etc/letsencrypt/live/itcmedbr.com/fullchain.pem; # managed by Certbot
 14     ssl_certificate_key /etc/letsencrypt/live/itcmedbr.com/privkey.pem; # managed by Certbot
 15     include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
 16     ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
 17
 18 }
 19
 20
 21 server {
 22     if ($host = itcmedbr.com) {
 23         return 301 https://$host$request_uri;
 24     } # managed by Certbot
 25
 26
 27 listen 80;
 28 listen [::]:80;
 29
 30 server_name     ipaddress
 31
 32 root /opt/tomcat/webapps/itcmedbr-1.0;
 33
 34 server_name itcmedbr.com www.itcmedbr.com;
 35     return 404; # managed by Certbot
 36
 37
 38 }

На строках 5 и 32 есть подозрительные символы, показанные в статусе Nginx.
Действительно мне нужна помощь, у меня нет идеи, как решить эту проблему.
Заранее спасибо и с наилучшими пожеланиями.

Ответ или решение

Ошибка 403 Forbidden, возникающая при попытке загрузки веб-приложения, обычно указывает на проблемы с разрешениями доступа. В этом контексте, с учетом использования CentOS 9, Java, Tomcat 10 и MySQL, а также конфигурации Nginx, необходимо рассмотреть несколько возможных причин и решений.

Теория

Ошибка 403 может быть вызвана рядом причин, в том числе:

  • Неправильные разрешения на файлы и каталоги. Если процесс, под которым работает веб-сервер (Nginx или Tomcat), не имеет достаточных прав доступа, это приведет к ограничению доступа.
  • Неправильная конфигурация сервера Nginx. Ошибка в конфигурационных файлах может блокировать доступ к определенным ресурсам.
  • Проблемы с сертификатами SSL. Если сертификаты неверно настроены, это может также вызывать ошибку доступа.
  • Ошибки синтаксиса или функций в index.jsp. В случае некорректного синтаксиса или запрета на выполнение скриптов может возникнуть ошибка доступа.

Пример

Ваш пример показывает, что директория /opt/tomcat/webapps/itcmedbr-1.0 настроена как корень для веб-сервера Nginx. Ваши текущие настройки Nginx могут иметь значения, вызывающие ошибку, такие как дублирующиеся или неверно заданные директивы server_name или пути к файлам.

Применение

  1. Проверка разрешений файлов и каталогов

    • Убедитесь, что пользователь, под которым работает Nginx (обычно это nginx), имеет доступ к директории /opt/tomcat/webapps/itcmedbr-1.0. Запустите команду sudo chown -R nginx:nginx /opt/tomcat/webapps/itcmedbr-1.0 и sudo chmod -R 755 /opt/tomcat/webapps/itcmedbr-1.0, чтобы установить корректные права.
  2. Проверка конфигурации Nginx

    • Ваш конфигурационный файл Nginx содержит следующие подводные камни:
      • Выражение server_name дублируется на строках 3 и 8. Убедитесь, что вы используете server_name корректно, и убедитесь, что у вас нет дублирующихся ошибок.
      • На строках 2 и 30 отсутствуют завершения (например, точки с запятой). Убедитесь, что все строки закончены правильно.
    • Убедитесь, что все дорожки указаны корректно, и нет лишних символов, как вы упомянули, строки 5 и 32 могут содержать подозрительные символы. Проверьте, что указание root является абсолютным и корректным.
  3. Проверка файлов сертификатов SSL

    • Откройте файлы сертификатов и убедитесь, что они актуальны и правильно настроены. Вы можете обновить сертификаты с помощью Certbot, выполняя команду sudo certbot renew.
  4. Мониторинг журналов Nginx и Tomcat

    • Проверьте журналы ошибок Nginx, которые обычно хранятся в /var/log/nginx/error.log.
    • Проверьте журналы Tomcat в директории /opt/tomcat/logs. Ищите любые индикаторы ошибочного выполнения или комбинации, указывающие на неудачи в доступе/разрешении.
  5. Тестирование и отладка JSP

    • Если основной файл вашего приложения – index.jsp, убедитесь, что его синтаксис корректен. Есть ли в нем коды, которые могут блокировать доступ?
  6. Обновление конфигурации Nginx

    • Убедитесь, что после каждого изменения в конфигурации Nginx вы перезапускаете сервер, чтобы настройки вступили в силу: sudo systemctl restart nginx.

Подводя итоги, вам необходимо не только последовательно проверить все вышеперечисленные аспекты, но также продолжать тестировать и, при необходимости, настраивать различные параметры сервера для точной локализации и устранения проблемы. Если все перечисленные методы не помогают, то целесообразно обратиться за поддержкой к профессиональному системному администратору или специалисту по сетевой безопасности, чтобы они провели более глубокую диагностику и анализ вашего окружения.

Оцените материал
Добавить комментарий

Капча загружается...