Procuration Apache, Tomcat - VHosts

J'ai ce paramètre:

l'Internet - routeur - [DMZ] - pfsense - Serveur Web.


router =

jenky Routeur en plastique pas cher (Mon mignon microtique est mort / carton). Adresse IP installée pfsense dans DMZ.


pfsense =

Performance de base de pare-feu plus Proxy / Proxy inversé. Les serveurs proxy sont conçus pour rediriger les URL du serveur Web correct pour le pare-feu.


webserver =

Dans le module centos Travailler httpd (apache) et tomcat6 (installé séparément, les deux yum, Mais à des moments différents, donc ce n'est pas apache + tomcat).

Plusieurs sites Web fonctionnant à partir de ce serveur Web particulier traité par des hôtes virtuels. apache.

ex: [url=http://www.example.com]http://www.example.com[/url], [url=http://www.example1.com]http://www.example1.com[/url], etc

Tomcat Exécute l'application sur le port 8080 En extension / mywebapp.

ex: [url=http://www.example.com:8080/mywebapp]http://www.example.com:8080/mywebapp[/url]

Je mets tout tout droit dans

pfsense

Rediriger tous les sites Web sous-domaines desservis apache, sur le bon hôte.

J'ai mis en place /etc/httpd/conf/httpd.conf, Pour activer une configuration d'hôte virtuelle comme

<virtualhost *:80="">
ServerName mywebapp.example.com
ProxyPass / [url=http://www.example.com:8080/mywebapp]http://www.example.com:8080/mywebapp[/url]
ProxyPassReverse / [url=http://www.example.com:8080/mywebapp]http://www.example.com:8080/mywebapp[/url]
ProxyRequests Off
<proxy http:="" mywebapp*="" www.example.com:8080="">
Order deny,allow
Allow from all
</proxy>
ErrorLog logs/mywebapp.example.com-error_log
CustomLog logs/mywebapp.example.com-access_log common
</virtualhost>

J'ai changé mon tomcat6

server.xml

fichier et modifié le premier connecteur pour activer

proxyName

et

proxyPort

.

 A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080

<connector connectiontimeout="20000" port="8080" protocol="HTTP/1.1" proxyname="mywebapp.example.com" proxyport="8080" redirectport="8443" uriencoding="UTF-8"></connector>

Peu importe ce que j'essaie quand je mets

mywebapp.example.com

Dans mon navigateur, il redirige vers

mywebapp.example.com:8080/mywebapp

.

Quand je veux y avoir accès comme

mywebapp.example.com

Et laissez-le dans la barre d'adresse du navigateur. Cela rendrait la publication d'URL plus pratique, etc.

J'ai déjà mis en place

CNAME

dans

DNS

pour

mywebapp

.


www.example.com

Cela ne l'affecte pas.

Magazines pour

httpd

Normalement regarder ... Se connecter tomcat6 Rien n'est montré. Je sais que la demande entrera dans le bon champ parce que

www.example.com:8080/mywebapp

travail (avec d'autres sites).


iptables

désactivé et donc si

SELinux

.

Qu'est-ce que je fais mal? S'il vous plaît donnez votre avis.


UPDATE:

J'ai essayé d'ajouter

ProxyPreserveHost On

dans la configuration vhost Un des commentaires, mais sans cubes. Quand cette chaîne est ajoutée et apache et tomcat redémarrer, je ne peux pas arriver à

mywebapp.example.com

n.

www.example.com:8080/mywebapp

. En fait, ajouter cette configuration fait mywebapp Généralement inaccessible, mais je sais que cela fonctionne toujours.


UPDATE 2:

Une addition tcpdump, pris du serveur. Je montre la première connexion qui est transmise de

pfsense

(Procuration) dans

webserver

.

192.168.0.1 == pfsense
192.168.1.1 == webserver
192.168.2.1 == "internet"

192.168.0.1 > 192.168.1.1
GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
Host: mywebapp.example.com
DNT: 1
Via: 1.1 proxy.somecompany.com (squid/3.1.20)
X-Forwarded-For: 192.168.2.1
Cache-Control: max-age=259200

192.168.1.1 > 192.168.2.1
GET /mywebapp HTTP/1.1
Host: www.example.com:8080
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
DNT: 1
Via: 1.1 proxy.somecompany.com (squid/3.1.20)
X-Forwarded-For: 192.168.2.1, 192.168.0.1
Cache-Control: max-age=259200
X-Forwarded-Host: mywebapp.example.com
X-Forwarded-Server: mywebapp.example.com
Connection: Keep-Alive

192.168.2.1 > 192.168.1.1
GET /mywebapp HTTP/1.1
Host: www.example.com:8080
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
DNT: 1
Via: 1.1 proxy.somecompany.com (squid/3.1.20)
X-Forwarded-For: 192.168.2.1, 192.168.0.1
Cache-Control: max-age=259200
X-Forwarded-Host: mywebapp.example.com
X-Forwarded-Server: mywebapp.example.com
Connection: Keep-Alive

192.168.1.1 > 192.168.2.1
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: [url=http://mywebapp.example.com:8080/mywebapp/]http://mywebapp.example.com:8080/mywebapp/[/url]
Content-Length: 0
Date: Thu, 04 Apr 2013 05:14:44 GMT

192.168.2.1 > 192.168.1.1
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: [url=http://mywebapp.example.com:8080/mywebapp/]http://mywebapp.example.com:8080/mywebapp/[/url]
Content-Length: 0
Date: Thu, 04 Apr 2013 05:14:44 GMT

192.168.1.1 > 192.168.0.1
HTTP/1.1 302 Moved Temporarily
Date: Thu, 04 Apr 2013 05:14:44 GMT
Server: Apache-Coyote/1.1
Location: [url=http://mywebapp.example.com:8080/mywebapp/]http://mywebapp.example.com:8080/mywebapp/[/url]
Content-Length: 0
Connection: close
Content-Type: text/plain; charset=UTF-8

192.168.2.1 > 192.168.1.1
GET /mywebapp/ HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
DNT: 1
Connection: Keep-Alive
Host: mywebapp.example.com:8080

192.168.1.1 > 192.168.2.1
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Encoding: gzip
Expires: 0
Cache-Control: no-cache,must-revalidate
X-App-Theme: default
Set-Cookie: JSESSIONID=81CE83D61454A8E75C222759FA118338; Path=/mywebapp
X-App: 1.395
X-App2: 1.508
X-App2-Session: e797c95b
X-App-CLI-Port: 36143
X-App2-CLI-Port: 36143
X-App2-CLI2-Port: 36143
X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjEfz8W2LiYRfrJQYH35uwtgQBpy0g6bTvBaTuARRpVLUmi+lnEfD/nVJY4GJoSfGzgnJAQ3MSqX+e1F4y2Jg5hwa2L0jibpb//BbfIMZkYZk8CtLMrkGvLC1nB7sghXupWOUOhWnzFq+a+LHSANNqfaMs9k6xJI6rvwIDAQAB
Content-Type: text/html;charset=UTF-8
Content-Length: 3879
Date: Thu, 04 Apr 2013 05:14:44 GMT

192.168.2.1 > 192.168.1.1
GET /mywebapp/static/e797c95b/css/style.css HTTP/1.1
Accept: text/css
Referer: [url=http://mywebapp.example.com:8080/mywebapp/]http://mywebapp.example.com:8080/mywebapp/[/url]
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
Host: mywebapp.example.com:8080
DNT: 1
Connection: Keep-Alive
Cookie: JSESSIONID=81CE83D61454A8E75C222759FA118338

192.168.1.1 > 192.168.2.1
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Last-Modified: Mon, 25 Mar 2013 20:17:34 GMT
Expires: Fri, 04 Apr 2014 05:14:44 GMT
Accept-Ranges: bytes
Content-Encoding: gzip
Content-Type: text/css
Content-Length: 5763
Date: Thu, 04 Apr 2013 05:14:44 GMT

192.168.2.1 > 192.168.1.1
GET /mywebapp/static/e797c95b/css/color.css HTTP/1.1
Accept: text/css
Referer: [url=http://mywebapp.example.com:8080/mywebapp/]http://mywebapp.example.com:8080/mywebapp/[/url]
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
Host: mywebapp.example.com:8080
DNT: 1
Connection: Keep-Alive
Cookie: JSESSIONID=81CE83D61454A8E75C222759FA118338


Update 3:

Ajouter mon courant

/etc/httpd/conf/httpd.conf

Fichier pour afficher les mises à jour / Changements pour le moment.

<virtualhost *:80="">
ServerName mywebapp.example.com
ProxyPass / [url=http://www.example.com:8080/mywebapp/]http://www.example.com:8080/mywebapp/[/url]
ProxyPassReverse / [url=http://www.example.com:8080/mywebapp/]http://www.example.com:8080/mywebapp/[/url]
ProxyRequests off
RewriteEngine on
RewriteRule ^(/.*) [url=http://www.example.com:8080/mywebapp/]http://www.example.com:8080/mywebapp/[/url]$1 [P]
# ProxyPreserveHost On
<proxy http:="" mywebapp*="" www.example.com:8080="">
Order deny,allow
Allow from all
</proxy>
ErrorLog logs/mywebapp.example.com-error_log
CustomLog logs/mywebapp.example.com-access_log common
</virtualhost>
Invité:

Christine

Confirmation de:

En ce moment, il n'y a pas de boîte pour tester, mais vous voyez la redirection 302, Sortant de votre chat. Il arrive donc toujours si vous demandez l'index de répertoire sans barre oblique.

Essayez la configuration suivante ProxyPass et ProxyPassReverse:

ProxyPass / [url=http://www.somesite.com:8080/mywebapp/]http://www.somesite.com:8080/mywebapp/[/url]
ProxyPassReverse / [url=http://www.somesite.com:8080/mywebapp/]http://www.somesite.com:8080/mywebapp/[/url]

Faites attention à la ligne oblique à la fin. Cela devrait éviter la redirection temporaire 302.

Changement: pour le matériel statique, essayez d'ajouter:

RewriteEngine on 
RewriteRule ^(/.*) [url=http://www.somesite.com:8080/mywebapp/]http://www.somesite.com:8080/mywebapp/[/url]$1 [P]

Cela suggère essentiellement que chaque demande de la racine de votre serveur Web doit être transmise au module proxy.

Giselle

Confirmation de:

Pourquoi avez-vous besoin

Proxy

section?

<proxy http:="" mywebapp*="" www.somesite.com:8080="">
Order deny,allow
Allow from all
</proxy>

Catherine

Confirmation de:

Il semble que c'est la redirection - Ceci est une URL générée du côté Tomcat.

Essayez ajouter

ProxyPreserveHost On

à ton

<virtualhost *:80="">

config?
</virtualhost>

Pour répondre aux questions, connectez-vous ou registre