2016-05-05 5 views
3

В моем проекте веб-приложение разработано с использованием Spring загрузки с сервером tomcat по умолчанию. Я использую NGINX в качестве балансировки нагрузки и настроил мой пружинный загрузочное веб-приложения в конфигурации Nginx следующим образом:Spring Boot и интеграция Nginx

location /spring-boot-web-app { 
    proxy_pass http://spring-boot-web-app/ 
} 

http { 
    upstream /spring-boot-web-app { 
     server <IP_of_spring_boot_app>:<Port_of_spring_boot_app> 
    } 
} 

Теперь давайте говорить NGINX IP и порт, как nginx_ip и nginx_port соответственно. работает также URL для моего веб-приложения, как: http://web_app_ip:web_app_port/rest/echo/hi

выше URL работает отлично. Но когда я пытаюсь попасть в тот же URI через NGINX, он выбрасывает 404. URL-адрес, используемый через NGINX как: http://nginx_ip:nginx_port/spring-boot-web-app/rest/echo/hi

Есть ли что-то, чего я не вижу?

+0

Вы проверили журналов Nginx? – Gangaraju

+0

Да. Даже я вижу журнал приложений, который перехватывает URL. – Sam

+0

Как-то я чувствую, что это больше проблема, связанная с CORS. Нужно ли устанавливать значение заголовка? – Sam

ответ

7

Это работает для меня. Можете ли вы попробовать это?

  1. Запуск Tomcat

    docker run -d -p 8080:8080 --name=tomcat tomcat:8 
    
  2. Запуск Nginx

    docker run -d -p 80:80 --link tomcat:tomcat --name=nginx nginx 
    
  3. Go внутри Nginx контейнера и обновления конф

    docker exec -it nginx bash 
    

    /etc/nginx/nginx.conf:

    server { 
        listen 80 default_server; 
        server_name subdomain.domain.com; 
        location/{ 
         proxy_pass http://tomcat:8080; 
         proxy_set_header Host  $host; 
         proxy_set_header X-Real-IP $remote_addr; 
        } 
    } 
    
  4. Restart Nginx служба

    nginx -s reload 
    
  5. Доступ кот через Nginx от главного браузера. Вы, возможно, потребуется добавить запись в файл/и т.д./хостов

    http://subdomain.domain.com 
    

Полная Nginx конф: nginx.conf

+0

Действительно оцените вашу помощь «Гангараджу». Но команда докеров, которую вы предложили, я не могу использовать. Потому что я использую консул для этого и определяю зависимость. – Sam

+0

Он может не вписаться в вашу среду. Но попробуйте отладить свою проблему, сравнив эти шаги и проверьте, что вам не хватает.Я предлагаю вам запустить эти контейнеры в другой среде, чтобы перекрестно проверить конфигурацию nginx/для лучшего понимания. – Gangaraju

+0

Большое спасибо Gangaraju за вашу оперативную помощь. Внимательно оцените! 1 – Sam

Смежные вопросы