2017-09-12 3 views
0

내가하려는 일을 모두 할 수 있습니까?글래스 피시의 프론트 엔드로 아파치 사용

웹 서버 우분투 16.04/Apache에 example.com이라는 도메인이 있습니다. 아파치 뒤에

나는 내가 웹 애플리케이션을 Payara에 표준 포트 8080

에 (실제로 Payara) 표준 글래스 피시를 실행 해요 - mywebapp와 - 루트 컨텍스트에 배포/

내가 직접 내 broser을 가리킬 때 포트 8080에 내가 예상 한대로 내 웹 응용 프로그램을 보여줍니다 : 첫 번째 제가 아파치 뒤에 내 Payara을 숨기고 사람들이 쓸 때 있는지 확인하려면)

http://example.com:8080/ => webapp shown. 

1

http://example.com/ the are redirected to 

https://example.com => myWebapp is shown. 

이 부분은 AJP를 사용하여 작동하며 인증서는 모두 제자리에 있습니다.

<VirtualHost *:80> 

내 default.conf에서

는 다음 줄을 삽입 한 :

Redirect permanent/https://example.com 

은 HTTPS로 리디렉션을 처리합니다. 그러나 이것이 올바른 방법인지 의심 스럽습니다.

conf 파일의 다른 모든 항목이 표준입니다.

<virtualHost *.443> 

내 ssl.conf 파일에

나는 SSL 인증서에

ServerName example.com 

및 경로를 삽입했습니다. 예상대로 작동합니다.

더 이상 나는이 잘 작동, 다시

ProxyPass/ajp://127.0.0.1:8009 
ProxyPassReverse/ajp://127.0.0.1:8009 

을 추가했습니다. 내가

http://example.com 

를 작성하는 경우 나는이 완벽

https://example.com/ => myWebapp is shown. 

로 리디렉션하고 있습니다. 내가 예를 들어

http://example.com/phpmyadmin 

를 작성하는 경우 내가 phpMyAdmin 페이지로 표시 아니에요하지만

.

어떻게하면이 작업을 수행 할 수 있습니까?

도움을 주셔서 감사합니다.

답변

0

당신은 다음과 같은 구성의 충돌이 : 이것은 당신의 Payara 서버로도 http://example.com/phpmyadmin 모든 HTTP 요청을 전송

ProxyPass/ajp://127.0.0.1:8009 
ProxyPassReverse/ajp://127.0.0.1:8009 

은 당신이 대신 필요한 것은

같은

입니다

ProxyPass /myWebapp ajp://127.0.0.1:8009 
ProxyPassReverse /myWebapp ajp://127.0.0.1:8009 

상대 URL 만/myWebapp로 시작하는 스크립트는 Payara 서버로 리디렉션되고/phpmyadmin은 Apache에서 계속 호스팅됩니다.

Apache documentation 언급이 예에서와 같이

만 특정 URI를, 프록시 될 수있다 : 상기에서

ProxyPass "/images" "http://www.example.com/" 
ProxyPassReverse "/images" "http://www.example.com/" 

어떤 요청한다/이미지로 시작하는 경로를 명시된 백엔드로 프록시해야합니다. 그렇지 않으면 로컬로 처리됩니다.

+0

좋아요, 그렇다면 사용자는 http://example.com/myWebApp을 작성해야 내 애플리케이션을 공격 할 수 있습니까? –

+0

이 솔루션에서 yes – toongeorges

+0

'RedirectMatch ^/$ http : // www.example.com/myWebApp'을 Apache 설정에 추가하여 http : // www.example.com을 http : // www로 리디렉션 할 수 있습니다 .example.com/myWebApp'. – toongeorges

관련 문제