Mehr

So führen Sie einen Proxy für Geoserver über Apache in Windows durch

So führen Sie einen Proxy für Geoserver über Apache in Windows durch


Ich verwende den Apache-Webserver auf localhost: 80 und den Geoserver, der vom Jetty-Servlet auf localhost: 8888 bedient wird. Ich möchte einen Proxy einrichten, um die Anfragen so umzuleiten, dass Anfragen an localhost/geoserver werden weitergeleitet an localhost:8888/geoserver

Ich folge dem Tutorial von http://gistutor.com/geoserver/21-intermediate-geoserver-tutorials/38-configuring-geoserver-proxy-for-public-and-remote-data-access.html und stecke in der Teil wo es heißt

Kopieren Sie den Text unten und klicken Sie mit der rechten Maustaste, um den ProxyPass in Ihre httpd.conf-Datei direkt über dem einzufügen  Etikett. ProxyRequests Aus ProxyPreserveHost Ein  Bestellung verweigern, zulassen Von allen zulassen  ProxyPass /geoserver http://localhost:8080/geoserver ProxyPassReverse /geoserver http://localhost:8080/geoserver

Ich kann nicht finden, wo der obige Text in die Datei httpd.conf eingefügt werden soll. Die Direktive virtual hosts in der Datei httpd.conf verweist auf die Datei httpd-vhosts.conf, die wie folgt aussieht

# # Verwenden Sie ein namensbasiertes virtuelles Hosting. # ##NameVirtualHost *:80 # # VirtualHost-Beispiel: # Fast jede Apache-Direktive kann in einen VirtualHost-Container gehen. # Der erste VirtualHost-Abschnitt wird für alle Anfragen verwendet, die in keinem # mit einem ServerName oder ServerAlias ​​übereinstimmen  Block. # ## ##ServerAdmin [email protected] ##DocumentRoot "C:/xampp/htdocs/dummy-host.localhost" ##ServerName dummy-host.localhost ##ServerAlias ​​www.dummy-host.localhost ##ErrorLog "logs /dummy-host.localhost-error.log" ##CustomLog "logs/dummy-host.localhost-access.log" kombiniert ## ## ##ServerAdmin [email protected] ##DocumentRoot "C:/xampp/htdocs/dummy-host2.localhost" ##ServerName dummy-host2.localhost ##ServerAlias ​​www.dummy-host2.localhost ##ErrorLog "logs /dummy-host2.localhost-error.log" ##CustomLog "logs/dummy-host2.localhost-access.log" kombiniert ##

Ich habe versucht und diese httpd-vhosts.conf-Datei mit den obigen Codes geändert, aber jedes Mal, wenn ich dies tue, kann ich den Apache-Server nicht neu starten.

dies ist die httpd.conf-Datei wie in c:xamppapacheconf

# # ServerRoot: Der obere Teil des Verzeichnisbaums, unter dem die # Konfigurations-, Fehler- und Protokolldateien des Servers gespeichert werden. # # Fügen Sie am Ende des Verzeichnispfads keinen Schrägstrich hinzu. Wenn Sie # ServerRoot auf einen nicht lokalen Datenträger verweisen, stellen Sie sicher, dass die LockFile-Direktive # auf einen lokalen Datenträger verweist. Wenn Sie denselben ServerRoot für mehrere # httpd-Daemons freigeben möchten, müssen Sie mindestens LockFile und PidFile ändern. # ServerRoot "C:/xampp/apache" # # Listen: Ermöglicht es Ihnen, Apache an bestimmte IP-Adressen und/oder # Ports zu binden, anstatt an den Standard. Siehe auch die  # Direktive. # # Ändern Sie dies in Listen auf bestimmten IP-Adressen, wie unten gezeigt, um # zu verhindern, dass Apache alle gebundenen IP-Adressen erfasst. # #Listen 0.0.0.0:80 #Listen [::]:80 Listen 80 # # Dynamic Shared Object (DSO) Support # # Um die Funktionalität eines Moduls nutzen zu können, das als DSO erstellt wurde, müssen Sie # entsprechenden 'LoadModule'-Zeilen an dieser Stelle, damit die darin enthaltenen # Direktiven tatsächlich verfügbar sind _bevor_ sie verwendet werden. # Statisch kompilierte Module (die mit 'httpd -l' aufgelisteten) müssen nicht # hier geladen werden. # # Beispiel: # LoadModule foo_module modules/mod_foo.so # LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_module authn_alias_module modules / mod_authn_alias.so #LoadModule authn_anon_module modules / mod_authn_anon.so #LoadModule authn_dbd_module modules / mod_authn_dbd.so #LoadModule authn_dbm_module modules / mod_authn_dbm.so LoadModule- authn_default_module modules / mod_authn_default.so LoadModule- authn_file_module modules / mod_authn_file.so #LoadModule authnz_ldap_module modules / mod_authnz_ldap .so #LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host Module authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so #LoadModule Bucketeer_module modules/mod_bucketeer.so #LoadModule cache_module modules/mod_cache.so #LoadModule case_filter_module modules/mod_case_filter_module_Lomod_case_filter_module_Lomod_case_filter_module_inmodule.so #LoadModule case_filter /mod_cern_meta.so LoadModule cgi_module modules/mod_cgi.so #LoadModule charset_lite_module modules/mod_charset_lite.so #LoadModule dav_module modules/mod_dav.so #LoadModule dav_fs_module module/mod_dav_fs.so LoadModule deflate_module modules/mod_deflate.so LoadModule dir_module modules/mod_dir.so #LoadModule disk_cache_module modules/mod_disk_cache.so #LoadModule dumpio_module modules/mod_dumpio.so #LoadModule echo_module modules/mod_echo.so LoadModule env_module. mod_example.so #LoadMo dule expires_module modules/mod_expires.so #LoadModule ext_filter_module modules/mod_ext_filter.so #LoadModule file_cache_module modules/mod_file_cache.so #LoadModule filter_module modules/mod_filter.so LoadModule headers_module modules/mod_headers.so #LoadModule/mod_ident_image modules /mod_imagemap.so LoadModule include_module modules/mod_include.so LoadModule info_module modules/mod_info.so LoadModule isapi_module modules/mod_isapi.so #LoadModule ldap_module modules/mod_ldap.so #LoadModule logio_module modules/mod_logio.so LoadModule log_config_config modules/mod_logio log_forensic_module modules/mod_log_forensic.so #LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule mime_module modules/mod_mime.so #LoadModule mime_magic_module modules/mod_mime_magic__Module_proxy_module proxy_module/mod_negotiation.so LoadModule equation_module_proxy_module/mod_negotiation.so#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule_rewrite_module_modules/mod_set_de_module_rewrite_module modules/mod_rewrite.so_set_module_rewrite_module/mod_rewrite.so so LoadModule ssl_module modules/mod_ssl.so LoadModule status_module modules/mod_status.so #LoadModule substitute_module modules/mod_substitute.so #LoadModule unique_id_module modules/mod_unique_id.so #LoadModule userdir_module modules/mod_userdir.so #LoadsoModule usertrack_module version module/mod_version.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so   # # Wenn Sie möchten, dass httpd unter einem anderen Benutzer oder einer anderen Gruppe ausgeführt wird, müssen Sie # httpd zunächst als Root ausführen und es wird umgeschaltet. # # Benutzer/Gruppe: Der Name (oder die #Nummer) des Benutzers/der Gruppe, unter der httpd ausgeführt werden soll. # Es ist normalerweise eine gute Vorgehensweise, einen dedizierten Benutzer und eine Gruppe für die # Ausführung von httpd zu erstellen, wie bei den meisten Systemdiensten. # Benutzer-Daemon Gruppen-Daemon  # 'Main'-Serverkonfiguration # # Die Anweisungen in diesem Abschnitt legen die Werte fest, die vom 'main'-Server # verwendet werden, der auf alle Anfragen antwortet, die nicht von einem #  Definition. Diese Werte bieten auch Standardwerte für # any  Container, die Sie später in der Datei definieren können. # # Alle diese Anweisungen können darin erscheinen  Container, # in diesem Fall werden diese Standardeinstellungen für den # definierten virtuellen Host überschrieben. # # # ServerAdmin: Ihre Adresse, an die Probleme mit dem # Server per E-Mail gesendet werden sollen. Diese Adresse wird auf einigen servergenerierten Seiten angezeigt, z. B. # in Fehlerdokumenten. z.B. [email protected] # ServerAdmin [email protected] # # ServerName gibt den Namen und den Port an, mit dem sich der Server identifiziert. Dies kann oft automatisch bestimmt werden, wir empfehlen jedoch, dass Sie es explizit angeben, um Probleme beim Start zu vermeiden. # Wenn Ihr Host keinen registrierten DNS-Namen hat, geben Sie hier seine IP-Adresse ein. # ServerName localhost:80 # # DocumentRoot: Das Verzeichnis, aus dem Sie Ihre # Dokumente bereitstellen. Standardmäßig werden alle Anfragen aus diesem Verzeichnis genommen, aber # symbolische Links und Aliase können verwendet werden, um auf andere Speicherorte zu verweisen. # DocumentRoot "C:/xampp/htdocs" # # Jedes Verzeichnis, auf das Apache Zugriff hat, kann hinsichtlich # konfiguriert werden, welche Dienste und Features in diesem # Verzeichnis (und seinen Unterverzeichnissen) erlaubt und/oder deaktiviert sind. # # Zuerst konfigurieren wir den "Standard" als einen sehr restriktiven Satz von # Funktionen. #  Optionen FollowSymLinks AllowOverride Keine Bestellung verweigern, zulassen Von allen verweigern  # # Beachten Sie, dass Sie von diesem Punkt an ausdrücklich zulassen müssen, dass # bestimmte Funktionen aktiviert werden. Wenn also etwas nicht wie erwartet # funktioniert, stellen Sie sicher, dass Sie es unten # ausdrücklich aktiviert haben. # # # Dies sollte zu dem geändert werden, auf was Sie DocumentRoot einstellen. #  # # Mögliche Werte für die Options-Direktive sind "None", "All", # oder eine beliebige Kombination aus: # Indizes Enthält FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Beachten Sie, dass "MultiViews" *explizit* benannt werden muss --- "Options All" # gibt es dir nicht. # # Die Optionsdirektive ist sowohl kompliziert als auch wichtig. Weitere Informationen finden Sie unter # http://httpd.apache.org/docs/2.2/mod/core.html#options #. # Optionen Indizes FollowSymLinks Beinhaltet ExecCGI # # AllowOverride steuert, welche Direktiven in .htaccess-Dateien platziert werden dürfen. # Es kann "All", "None" oder eine beliebige Kombination der Schlüsselwörter sein: # Optionen FileInfo AuthConfig Limit # AllowOverride All # # Steuert, wer Inhalte von diesem Server bekommen kann. # Bestellung erlauben, verweigern Von allen zulassen  # # DirectoryIndex: legt die Datei fest, die Apache bereitstellt, wenn ein Verzeichnis # angefordert wird. #  DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm  default.php default.pl default.cgi default.asp default.shtml default.html default.htm  home.php home. pl home.cgi home.asp home.shtml home.html home.htm  # # Die folgenden Zeilen verhindern, dass .htaccess- und .htpasswd-Dateien # von Web-Clients angezeigt werden. #  Bestellung erlauben, verweigern Von allen verweigern Alle zufriedenstellen  # # ErrorLog: Der Speicherort der Fehlerprotokolldatei. # Wenn Sie innerhalb von a . keine ErrorLog-Direktive angeben  # Container, Fehlermeldungen zu diesem virtuellen Host # werden hier protokolliert. Wenn Sie *do* eine Fehlerprotokolldatei für a . definieren  # Container, die Fehler dieses Hosts werden dort protokolliert und nicht hier. # ErrorLog "logs/error.log" #ScriptLog "logs/cgi.log" # # LogLevel: Steuern Sie die Anzahl der im error_log protokollierten Meldungen. # Mögliche Werte sind: debug, info, notice, warn, error, crit, # alert, emerg. # LogLevel-Warnung  # # Die folgenden Direktiven definieren einige Format-Kurznamen zur Verwendung mit # einer CustomLog-Direktive (siehe unten). # LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" kombiniertes LogFormat "%h %l %u %t "%r" %>s %b" allgemein  # Sie müssen mod_logio.c aktivieren, um %I und %O zu verwenden LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User -Agent}i" %I %O" kombiniertio  # # Der Speicherort und das Format der Zugriffsprotokolldatei (Common Logfile Format). # Wenn Sie innerhalb von a . keine Zugriffs-Logfiles definieren  # Container, sie werden hier protokolliert. Umgekehrt, wenn Sie *do* # per- Logfiles zugreifen, werden Transaktionen darin # protokolliert und *nicht* in dieser Datei. # #CustomLog "logs/access.log" common # # Wenn Sie eine Logdatei mit Zugangs-, Agenten- und Referrer-Informationen # (Combined Logfile Format) bevorzugen, können Sie die folgende Anweisung verwenden. # CustomLog "logs/access.log" kombiniert   # # Redirect: Ermöglicht es Ihnen, Clients über Dokumente zu informieren, die # im Namespace Ihres Servers existierten, aber nicht mehr existieren. Der Client # wird das Dokument an seinem neuen Speicherort erneut anfordern. # Beispiel: # Redirect permanent /foo http://localhost/bar # # Alias: Ordnet Webpfade Dateisystempfaden zu und wird verwendet, um # auf Inhalte zuzugreifen, die nicht unter DocumentRoot gespeichert sind. # Beispiel: # Alias ​​/webpath /full/filesystem/path # # Wenn Sie ein nachgestelltes / auf /webpath einfügen, # verlangt der Server, dass es in der URL vorhanden ist. Sie müssen wahrscheinlich auch # ein angeben  Abschnitt, um den Zugriff # auf den Dateisystempfad zu ermöglichen. # # ScriptAlias: Dies steuert, welche Verzeichnisse Serverskripte enthalten. # ScriptAliases sind im Wesentlichen die gleichen wie Aliase, außer dass # Dokumente im Zielverzeichnis als Anwendungen behandelt und # auf Anfrage vom Server ausgeführt werden und nicht als Dokumente, die # an den Client gesendet werden. Für ScriptAlias ​​#-Direktiven gelten die gleichen Regeln für das nachgestellte "/" wie für Alias. # ScriptAlias ​​/cgi-bin/ "C:/xampp/cgi-bin/"   # # ScriptSock: Geben Sie auf Threaded-Servern den Pfad zum # UNIX-Socket an, der für die Kommunikation mit dem CGI-Daemon von mod_cgid verwendet wird. # #Scriptsock "logs/cgi.sock"  # # "C:/xampp/cgi-bin" sollte geändert werden in das, was in Ihrem ScriptAliased # CGI-Verzeichnis existiert, wenn Sie das konfiguriert haben. #  AllowOverride Keine Optionen Keine Reihenfolge erlauben, verweigern Von allen zulassen  # # DefaultType: Der Standard-MIME-Typ, den der Server für ein Dokument verwendet, # wenn er einen anderen Typ nicht ermitteln kann, z. B. aus Dateinamenerweiterungen. # Wenn Ihr Server hauptsächlich Text- oder HTML-Dokumente enthält, ist "text/plain" # ein guter Wert. Wenn der größte Teil Ihres Inhalts binär ist, wie # Anwendungen oder Bilder, möchten Sie vielleicht stattdessen "application/octet-stream" verwenden, um # zu verhindern, dass Browser versuchen, Binärdateien # als Text anzuzeigen. # DefaultType text/plain  # # TypesConfig zeigt auf die Datei, die die Liste der Zuordnungen # von der Dateinamenerweiterung zum MIME-Typ enthält. # TypesConfig "conf/mime.types" # # AddType ermöglicht es Ihnen, die in TypesConfig angegebene # MIME-Konfigurationsdatei für bestimmte Dateitypen hinzuzufügen oder zu überschreiben. # #AddType application/x-gzip .tgz # # AddEncoding ermöglicht es Ihnen, bestimmte Browser # Informationen im laufenden Betrieb dekomprimieren zu lassen. Hinweis: Nicht alle Browser unterstützen dies. # #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz # # Wenn die obigen AddEncoding-Anweisungen auskommentiert sind, # sollten Sie diese Erweiterungen wahrscheinlich definieren, um Medientypen anzugeben: # AddType application/x-compress . Z AddType application/x-gzip .gz .tgz # # Mit AddHandler können Sie bestimmte Dateierweiterungen auf "Handler" abbilden: # Aktionen ohne Bezug zum Dateityp. Diese können entweder in den Server eingebaut # oder mit der Action-Direktive hinzugefügt werden (siehe unten). AddHandler cgi-script .cgi .pl .asp .py # Für Typzuordnungen (ausgehandelte Ressourcen): #AddHandler type-map var # # Filter ermöglichen es Ihnen, Inhalte zu verarbeiten, bevor sie an den Client gesendet werden. # # So analysieren Sie .shtml-Dateien für serverseitige Includes (SSI): # (Sie müssen auch "Includes" zur "Options"-Direktive hinzufügen.) # AddType text/html .shtml AddOutputFilter INCLUDES .shtml   # # Das Modul mod_mime_magic ermöglicht es dem Server, verschiedene Hinweise aus dem # Inhalt der Datei selbst zu verwenden, um ihren Typ zu bestimmen. Die Direktive MIMEMagicFile # teilt dem Modul mit, wo sich die Hint-Definitionen befinden. # MIMEMagicFile "conf/magic"  # # Anpassbare Fehlerantworten gibt es in drei Varianten: # 1) Klartext 2) Lokale Weiterleitungen 3) Externe Weiterleitungen # # Einige Beispiele: #ErrorDocument 500 "Der Server hat einen Boo Boo gemacht." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://localhost/subscription_info.html # # # EnableMMAP und EnableSendfile: Auf Systemen, die dies unterstützen, # Speicherzuordnung oder der sendfile-Systemaufruf wird verwendet, um # Dateien zu liefern. Dies verbessert normalerweise die Serverleistung, muss aber # ausgeschaltet werden, wenn # von Netzwerk-gemounteten Dateisystemen aus bedient wird oder wenn die Unterstützung dieser Funktionen auf # Ihrem System anderweitig unterbrochen ist. # #EnableMMAP off #EnableSendfile off # Ergänzende Konfiguration # # Die Konfigurationsdateien im Verzeichnis conf/extra/ können # eingebunden werden, um zusätzliche Funktionen hinzuzufügen oder die Standardkonfiguration des # Servers zu ändern, oder Sie können ihren Inhalt einfach hierher kopieren und ändern Sie wie # erforderlich. # XAMPP-spezifische Einstellungen Include "conf/extra/httpd-xampp.conf" # Perl-Einstellungen Include "conf/extra/httpd-perl.conf" # Server-Pool-Verwaltung (MPM-spezifisch) Include "conf/extra/httpd-mpm. conf" # Mehrsprachige Fehlermeldungen Include "conf/extra/httpd-multilang-errordoc.conf" # Ausgefallene Verzeichnislisten Include "conf/extra/httpd-autoindex.conf" # Spracheinstellungen Include "conf/extra/httpd-languages .conf" # Benutzer-Heimatverzeichnisse Include "conf/extra/httpd-userdir.conf" # Echtzeit-Informationen zu Anforderungen und Konfiguration Include "conf/extra/httpd-info.conf" # Virtuelle Hosts Include "conf/extra/httpd -vhosts.conf" # Verteiltes Authoring und Versionierung (WebDAV) # Achtung! WEB_DAV ist ein Sicherheitsrisiko ohne eine neue benutzerspezifische Konfiguration für eine sichere Authentifizierung # Include "conf/extra/httpd-dav.conf" # Implementiert einen Proxy/Gateway für Apache. Include "conf/extra/httpd-proxy.conf" # Verschiedene Standardeinstellungen Include "conf/extra/httpd-default.conf" # Sichere (SSL/TLS) Verbindungen Include "conf/extra/httpd-ssl.conf" # # Hinweis: Folgendes muss vorhanden sein, um # das Starten ohne SSL auf Plattformen ohne /dev/random-Äquivalent #, aber ein statisch kompiliertes mod_ssl zu unterstützen. #  SSLRandomSeed-Start integriert SSLRandomSeed-Verbindung integriert SSLSessionCache "shmcb:logs/ssl.scache(512000)" SSLSessionCacheTimeout 300  # AJP13-Proxy   Fügen Sie "conf/extra/httpd-ajp.conf" ein. 

Wenn Sie Ubuntu verwenden, müssen Sie zuerst Apache konfigurieren

$sudo ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf $sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2 /mods-enabled/proxy.load $sudo ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load

Dann hänge folgendes an deine /etc/apache2/sites-available/default

ProxyRequests Off # Denken Sie daran, die nächste Zeile auszuschalten, wenn Sie einen Proxy an einen NameVirtualHost ProxyPreserveHost On senden  Bestellung verweigern, zulassen Von allen zulassen  ProxyPass /geoserver http://localhost:8888/geoserver ProxyPassReverse /geoserver http://localhost:8888/geoserver 

Unter Windows ist es etwas knifflig, Sie müssen einige Module laden, um den Proxy zu aktivieren. Fügen Sie in Ihrer httpd.conf Folgendes hinzu:

LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule headers_module modules/mod_headers.so LoadModule module/mod_defe_ml also LoadModule proxy_html_module modules/mod_proxy_html.so

Fügen Sie am Ende Ihrer httpd.conf die folgenden Zeilen hinzu

 ProxyPass /geoserver http://localhost:8080/geoserver ProxyPassReverse /geoserver http://localhost:8080/geoserver 

Quelle: http://scripting.com/stories/2008/11/19/checklistForReverseProxies.html


Sie müssen proxypass und proxypassreverse nicht konfigurieren.

Sie benötigen eine in Python geschriebene Datei proxy.cgi und auf Ihrem Server installiertes Python. Sie können die Proxy-Datei mit der openlayers-Distribution im Beispielordner abrufen. Sie müssen den Pfad zum Python-Interpreter in der ersten Zeile konfigurieren und Ihren Host zur Liste der zulässigen Hosts hinzufügen.