Для передачі трафіку JBoss / TomCat на порт 80 за допомогою Apache ми використовували для установки та налаштування mod_jk
.
Чи є еквівалент nginx? В основному хочеться, щоб весь трафік порту 80 передався jboss.
Для передачі трафіку JBoss / TomCat на порт 80 за допомогою Apache ми використовували для установки та налаштування mod_jk
.
Чи є еквівалент nginx? В основному хочеться, щоб весь трафік порту 80 передався jboss.
Відповіді:
Для оформлення nginx їх документи тут . Вбудована підтримка проксі.
У наведеному нижче прикладі з їх сайту ви побачите, що певний трафік порту 80 надсилається до одного контейнера сервлетів, що працює на порт 8080.
Зауважте, що якщо ви хочете запустити кілька контейнерів сервлетів для сервера (для балансування навантаження, масштабування тощо), ви повинні подивитися на модуль ярмарку вгору, який спрямовуватиме трафік на найменш завантажений сервер сервера. Він не поставляється за замовчуванням w / nginx.
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;
}
}
Ще один спосіб зробити це так, як це описано на вікі-сторінці LikeApache .
server {
listen myhost:80;
server_name myhost;
location / {
root /path/to/myapp/public;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://myapp:8080;
}
}
Я також перевірив це добре з / myapp замість корінця, а також працює, розміщуючи location / myapp та proxypass http: // myapp: 8080 / myapp ;
Крім того, ця конфігурація відображає все на додатку Java, що корисно, коли у вас є гарні URL-адреси, відображені в рамках MVC-фрейму, як Struts.
Вам не потрібно використовувати mod_jk, ви можете використовувати mod_proxy, тобто передавати трафік через HTTP замість AJP. Якщо nginx має проксі-здатність, це має працювати так само добре.
Зараз існує досить свіжий ajp_module для nginx . Я не маю досвіду з цим, але я думаю, що клейкість до сеансу і особливо стійкі підключення до бекенду є цілком корисними для Tomcat. Обидва методи (http proxy або ajp proxy), на жаль, негнучкі до довготривалих запитів (комета) або великих передач файлів (завантажень).
https://github.com/yaoweibin/nginx_ajp_module#readme
lighttpd BTW має загальний проксі-модуль, який може працювати з кодуванням FCGI, HTTP, CGIS та AJP13. Це виглядає як кращий підхід (але я думаю, що після читання він має ті самі обмеження щодо нетипових моделей довгих / великих запитів / відповідей).