Mam kilka webapps uruchomionych na mój serwer WWW:Jak ustawić lokalizację proxy dla wszystkich ścieżek oprócz niektórych z apache2?
- repozytorium SVN Browser, dostępnej poprzez
https://beta.mydomain.tld/svn/repos
- przykład Trac, dostepne poprzez
https://beta.mydomain.tld/trac
- Mojej własnej aplikacji Java Web, dostępny za pośrednictwem
http://beta.mydomain.tld/
, stosując Proxy dla lokalnego serwera Tomcat na porcie 8080
Należy pamiętać, że pierwsze dwa są dostępne przez SSL, trzeci nie (jeszcze). Teraz muszę udostępnić moją aplikację internetową za pośrednictwem protokołu https, ale chcę, aby przeglądarki Trac i SVN nadal były dostępne w ich bieżącej lokalizacji.
tj. Próbuję skonfigurować serwer Apache2 do obsługi wszystkich żądań nie rozpoczynających się od svn
lub trac
dla Tomcat.
Dla istniejących aplikacji internetowych SSL, jest następująca konfiguracja
<Location /svn/repos>
DAV svn
SVNParentPath /home/myuser/svn
SVNListParentPath on
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/myuser/.htpasswd
Require valid-user
</Location>
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /home/myuser/trac
PythonOption TracUriRoot /trac
AuthType Basic
AuthName "Trac"
AuthUserFile /home/myuser/.htpasswd
Require valid-user
</Location>
Próbowałem dodać następującą lokalizację, ale to nic nie pomogło ...
<Location />
ProxyPass http://localhost:8080
ProxyPassReverse http://localhost:8080/
</Location>
W celu uzyskania dalszych informacji, tutaj jest kompletna konfiguracja apache2 w odniesieniu do części SSL (bez żadnego z moich nieudanych prób w niej - myślę, że jest to domyślna konfiguracja trac):
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName beta.mydomain.tld:443
DocumentRoot /var/www/
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/ssl_access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl.crt
SSLCertificateKeyFile /etc/ssl/private/ssl.key
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
<Location /svn/repos>
DAV svn
SVNParentPath /home/myuser/svn
SVNListParentPath on
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/myuser/.htpasswd
Require valid-user
</Location>
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /home/myuser/trac
PythonOption TracUriRoot /trac
AuthType Basic
AuthName "Trac"
AuthUserFile /home/myuser/.htpasswd
Require valid-user
</Location>
Przepraszam, teraz, gdy to napisałem, zdałem sobie sprawę, że lepiej byłoby zlokalizować go przy awarii serwera. Byłoby wspaniale, gdyby ktoś mógł go tam przenieść ... Dzięki. – peterp