Пытаюсь разобраться с nginx на Ubuntu.
В блоке http добавил такую настройку:
server {
listen 8080;
server_name library.bakhuss.ru;
location / {
proxy_pass http://127.0.0.1:8888/;
}
}
Страницы не открываются. В error.log ошибок нет. Web-приложение на java, spring-boot, встроенный jetty. Если с сервера заходить на адрес localhost:8888, всё работает.
В access.log появляются следующие строчки:
10.0.0.180 - - [23/May/2018:09:31:06 -0400] "GET / HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.33$
10.0.0.180 - - [23/May/2018:09:31:06 -0400] "GET /icons/ubuntu-logo.png HTTP/1.0" 404 580 "http://library.bakhuss.ru/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Apple$
Подскажите, что у меня не так?
О том как настроить взаимодействие веб-приложения на Jetty и nginx написана специальная страница в wiki.
Настройка контекста веб-приложения в файле jetty/contexts/YOUR_WEB_APPLICATION_FOLDER.xml. Будьте внимательны и правильно установите resourceBase (YOUR_WEB_APPLICATION_FOLDER) и virtualHosts (YOUR_DOMAIN).
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<Set name="configurationClasses">
<Array type="java.lang.String">
<Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
<Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
<Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
<Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
<Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
</Array>
</Set>
<Set name="contextPath">/</Set>
<Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/webapps/YOUR_WEB_APPLICATION_FOLDER</Set>
<Set name="virtualHosts">
<Array type="java.lang.String">
<Item>YOUR_DOMAIN</Item>
</Array>
</Set>
<New id="YOUR_DB_NAME" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>jdbc/YOUR_DB_NAME</Arg>
<Arg>
<New class="org.postgresql.ds.PGConnectionPoolDataSource">
<Set name="User">postgres</Set>
<Set name="Password">*****</Set>
<Set name="DatabaseName">YOUR_DB_NAME</Set>
<Set name="ServerName">localhost</Set>
<Set name="PortNumber">5432</Set>
</New>
</Arg>
</New>
</Configure>
При настройке nginx нужно обратить внимание на настройку корневого каталога запросов:
root /PATH/TO/YOUR/WEB/APPLICATION;
И на настройку протокола и адреса проксируемого java-сервера:
proxy_pass http://localhost:8080;
В общем виде рекомендованная конфигурация выглядит так:
server {
listen 80;
server_name YOUR_DOMAIN;
root /PATH/TO/YOUR/WEB/APPLICATION;
location / {
index index.jsp;
}
location ~ \.do$ {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ~ \.jsp$ {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ^~/servlets/* {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
Написал так:
server {
listen *:80;
server_name library.bakhuss.ru;
root /root/Library/src/main/webapp/;
location / {
index index.html;
proxy_pass http://127.0.0.1:8888/;
}
}
и всё заработало.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Проблема в том что реализовать реализовал, но из приложения не выходит
Разбираюсь с фреймворком playНеобходимо сделать несколько запросов в БД, и по результатам их выполнения сделать бизнес логику