Suite

Comment proxy Geoserver via Apache sous Windows


j'utilise le serveur Web Apache sur localhost:80 et le géoserveur servi à partir du servlet de la jetée sur localhost:8888. je veux configurer un proxy pour rediriger les requêtes de telle sorte que les requêtes vers localhost/géoserveur sont acheminés vers localhost:8888/geoserver

je suis le tutoriel de http://gistutor.com/geoserver/21-intermediate-geoserver-tutorials/38-configuring-geoserver-proxy-for-public-and-remote-data-access.html et je suis coincé dans le partie où il est dit

copiez le texte ci-dessous et faites un clic droit pour coller le ProxyPass dans votre fichier httpd.conf juste au-dessus du  étiqueter. ProxyRequests désactivé ProxyPreserveHost activé  Refuser la commande, autoriser Autoriser de tous  ProxyPass /geoserver http://localhost:8080/geoserver ProxyPassReverse /geoserver http://localhost:8080/geoserver

je ne trouve pas où insérer le texte ci-dessus dans le fichier httpd.conf. la directive virtual hosts dans le fichier httpd.conf pointe vers le fichier httpd-vhosts.conf qui ressemble à ci-dessous

# # Utilisez un hébergement virtuel basé sur le nom. # ##NameVirtualHost *:80 # # Exemple VirtualHost : # Presque toutes les directives Apache peuvent être placées dans un conteneur VirtualHost. # La première section VirtualHost est utilisée pour toutes les demandes # qui ne correspondent à aucun ServerName ou ServerAlias  bloquer. # ## ##ServerAdmin [email protected]y-host.localhost ##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" combiné ## ## ##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" combiné ##

J'ai essayé et modifié ce fichier httpd-vhosts.conf avec les codes ci-dessus, mais chaque fois que je le fais, je ne parviens pas à redémarrer le serveur Apache.

c'est le fichier httpd.conf comme dans c:xamppapacheconf

# # ServerRoot : le sommet de l'arborescence de répertoires sous laquelle # la configuration, les erreurs et les fichiers journaux du serveur sont conservés. # # N'ajoutez pas de barre oblique à la fin du chemin du répertoire. Si vous pointez # ServerRoot sur un disque non local, assurez-vous de pointer la directive LockFile # sur un disque local. Si vous souhaitez partager le même ServerRoot pour plusieurs # démons httpd, vous devrez au moins modifier LockFile et PidFile. # ServerRoot "C:/xampp/apache" # # Listen : permet de lier Apache à des adresses IP et/ou # des ports spécifiques, au lieu de la valeur par défaut. Voir aussi le  # directive. # # Remplacez ceci par Écouter sur des adresses IP spécifiques comme indiqué ci-dessous pour # empêcher Apache de s'étendre sur toutes les adresses IP liées. # #Listen 0.0.0.0:80 #Listen [::]:80 Listen 80 # # Support Dynamic Shared Object (DSO) # # Pour pouvoir utiliser les fonctionnalités d'un module qui a été construit en tant que DSO, vous devez # placer les lignes 'LoadModule' correspondantes à cet emplacement afin que les # directives qu'il contient soient réellement disponibles _avant_ d'être utilisées. # Les modules compilés statiquement (ceux listés par 'httpd -l') n'ont pas besoin # d'être chargés ici. # # Exemple : # 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 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_module_host_module modules/mod_ #Lothzadowner_module modules/mod_authz_groupfile.so LoadModule authz_module_module_module modules/mod_ #Lothzadowner 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_module_modules/mod_casefilter_filter.so /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 modules/mod_dav_fs_fs.so LoadModule dav_module modules/mod_dav.so #LoadModule dav_fs_module modules/mod_dav_fs_fs.so LoadModule dav_mod modules. 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_module_modules loadModule example/mod_echo_so LoadModule modules 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 modules/modul_headers_so #LoidentModule module_headers.so /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_mod_config_module 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.so LoadModule module de négociation_module modules/module_proxy_negoto#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. so LoadModule ssl_module modules/mod_ssl.so LoadModule status_module modules/mod_status.so #LoadModule substitut_module modules/mod_substitute.so #LoadModule unique_id_module modules/mod_unique_id.so #LoadModule userdir_module modules/mod_userdir.so #LoadModulemoduleuserdir.so #LoadModuleModule_userdir.so #LoadModule modules/mod_version.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so   # # Si vous souhaitez que httpd s'exécute en tant qu'utilisateur ou groupe différent, vous devez d'abord exécuter # httpd en tant que root et il basculera. # # Utilisateur/Groupe : Le nom (ou #numéro) de l'utilisateur/du groupe sous lequel exécuter httpd. # Il est généralement recommandé de créer un utilisateur et un groupe # dédiés pour exécuter httpd, comme avec la plupart des services système. # Démon utilisateur Démon de groupe  # Configuration du serveur 'principal' # # Les directives de cette section définissent les valeurs utilisées par le # serveur 'principal', qui répond à toutes les requêtes qui ne sont pas traitées par un #  définition. Ces valeurs fournissent également des valeurs par défaut pour # tout  conteneurs que vous pouvez définir plus tard dans le fichier. # # Toutes ces directives peuvent apparaître à l'intérieur  conteneurs, # auquel cas ces paramètres par défaut seront remplacés pour # l'hôte virtuel en cours de définition. # # # ServerAdmin : votre adresse à laquelle les problèmes # avec le serveur doivent être envoyés par e-mail. Cette adresse apparaît sur certaines pages générées par le serveur, telles que # les documents d'erreur. par exemple. [email protected] # ServerAdmin [email protected] # # ServerName donne le nom et le port que le serveur utilise pour s'identifier. Cela peut souvent être déterminé automatiquement, mais nous vous recommandons de le spécifier explicitement pour éviter les problèmes lors du démarrage. # Si votre hôte n'a pas de nom DNS enregistré, entrez son adresse IP ici. # ServerName localhost:80 # # DocumentRoot : Le répertoire à partir duquel vous servirez vos # documents. Par défaut, toutes les requêtes proviennent de ce répertoire, mais # des liens symboliques et des alias peuvent être utilisés pour pointer vers d'autres emplacements. # DocumentRoot "C:/xampp/htdocs" # # Chaque répertoire auquel Apache a accès peut être configuré en fonction des # services et fonctionnalités autorisés et/ou désactivés dans ce # répertoire (et ses sous-répertoires). # # Tout d'abord, nous configurons le "default" pour qu'il soit un ensemble # très restrictif de fonctionnalités. #  Options FollowSymLinks AllowOverride Aucun Refuser l'ordre, autoriser le refus de tous  # # Notez qu'à partir de maintenant, vous devez spécifiquement autoriser # l'activation de fonctionnalités particulières. # # # Cela devrait être remplacé par tout ce que vous définissez DocumentRoot. #  # # Les valeurs possibles pour la directive Options sont "Aucun", "Tout", # ou toute combinaison de : # Indexes Inclut FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Notez que "MultiViews" doit être nommé *explicitement* --- "Options All" # ne vous le donne pas. # # La directive Options est à la fois compliquée et importante. Veuillez consulter # http://httpd.apache.org/docs/2.2/mod/core.html#options # pour plus d'informations. # Options Index FollowSymLinks Inclut ExecCGI # # AllowOverride contrôle quelles directives peuvent être placées dans les fichiers .htaccess. # Il peut s'agir de "Tous", "Aucun" ou de n'importe quelle combinaison des mots-clés : # Options FileInfo AuthConfig Limit # AllowOverride All # # Contrôle qui peut obtenir des éléments de ce serveur. # Ordre autoriser, refuser Autoriser de tous  # # DirectoryIndex : définit le fichier qu'Apache servira si un répertoire # est demandé. #  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  # # Les lignes suivantes empêchent les fichiers .htaccess et .htpasswd d'être # affichés par les clients Web. #  Ordre autoriser, refuser Refuser de tous Satisfaire tous  # # ErrorLog : L'emplacement du fichier journal des erreurs. # Si vous ne spécifiez pas de directive ErrorLog dans un  # conteneur, les messages d'erreur relatifs à cet hôte virtuel seront # enregistrés ici. Si vous *définissez* un fichier journal d'erreurs pour un  # conteneur, les erreurs de cet hôte y seront consignées et non ici. # ErrorLog "logs/error.log" #ScriptLog "logs/cgi.log" # # LogLevel : Contrôle le nombre de messages enregistrés dans le journal des erreurs. # Les valeurs possibles incluent : debug, info, notice, warn, error, crit, # alert, emerg. # LogLevel avertir  # # Les directives suivantes définissent certains surnoms de format à utiliser avec # une directive CustomLog (voir ci-dessous). # LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combiné LogFormat "%h %l %u %t "%r" %>s %b" commun  # Vous devez activer mod_logio.c pour utiliser %I et %O LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User -Agent}i" %I %O" combinéio  # # L'emplacement et le format du fichier journal d'accès (Common Logfile Format). # Si vous ne définissez aucun fichier journal d'accès dans un  # conteneur, ils seront enregistrés ici. Au contraire, si vous *faites* # définissez per- accéder aux fichiers journaux, les transactions y seront # enregistrées et *pas* dans ce fichier. # #CustomLog "logs/access.log" common # # Si vous préférez un fichier journal avec des informations d'accès, d'agent et de référent # (Format de fichier journal combiné), vous pouvez utiliser la directive suivante. # CustomLog "logs/access.log" combiné   # # Redirection : vous permet d'informer les clients des documents qui existaient # dans l'espace de noms de votre serveur, mais qui n'existent plus. Le client # fera une nouvelle demande pour le document à son nouvel emplacement. # Exemple : # Redirection permanente /foo http://localhost/bar # # Alias : mappe les chemins Web dans les chemins du système de fichiers et est utilisé pour # accéder au contenu qui ne réside pas sous DocumentRoot. # Exemple : # Alias ​​/webpath /full/filesystem/path # # Si vous incluez un / de fin / sur /webpath alors le serveur # exigera qu'il soit présent dans l'URL. Vous devrez également probablement # fournir un  section pour autoriser l'accès # au chemin du système de fichiers. # # ScriptAlias : contrôle les répertoires contenant les scripts du serveur. # Les ScriptAliases sont essentiellement les mêmes que les Aliases, sauf que # les documents du répertoire cible sont traités comme des applications et # exécutés par le serveur lorsqu'ils sont demandés plutôt que comme des documents # envoyés au client. Les mêmes règles concernant le "/" de fin s'appliquent aux directives ScriptAlias ​​# et à Alias. # ScriptAlias ​​/cgi-bin/ "C:/xampp/cgi-bin/"   # # ScriptSock : Sur les serveurs threadés, désignez le chemin d'accès au socket UNIX # utilisé pour communiquer avec le démon CGI de mod_cgid. # #Scriptsock "logs/cgi.sock"  # # "C:/xampp/cgi-bin" doit être remplacé par le répertoire CGI # ScriptAliased existant, si vous l'avez configuré. #  AllowOverride Aucun Options Aucun Ordre autoriser, refuser Autoriser de tous  # # DefaultType : le type MIME par défaut que le serveur utilisera pour un document # s'il ne peut pas en déterminer un autrement, comme à partir des extensions de nom de fichier. # Si votre serveur contient principalement du texte ou des documents HTML, "text/plain" est # une bonne valeur. Si la plupart de votre contenu est binaire, comme des applications # ou des images, vous pouvez utiliser "application/octet-stream" à la place pour # empêcher les navigateurs d'essayer d'afficher des fichiers binaires # comme s'il s'agissait de texte. # DefaultType text/plain  # # TypesConfig pointe vers le fichier contenant la liste des mappages # de l'extension de nom de fichier au type MIME. # TypesConfig "conf/mime.types" # # AddType vous permet d'ajouter ou de remplacer le fichier de configuration # MIME spécifié dans TypesConfig pour des types de fichiers spécifiques. # #AddType application/x-gzip .tgz # # AddEncoding permet à certains navigateurs de décompresser # des informations à la volée. Remarque : tous les navigateurs ne le prennent pas en charge. # #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz # # Si les directives AddEncoding ci-dessus sont mises en commentaire, alors vous devriez # probablement définir ces extensions pour indiquer les types de médias : # AddType application/x-compress . Z AddType application/x-gzip .gz .tgz # # AddHandler vous permet de mapper certaines extensions de fichiers à des "gestionnaires": # actions sans rapport avec le type de fichier. Ceux-ci peuvent être soit intégrés au serveur # soit ajoutés avec la directive Action (voir ci-dessous) # # Pour utiliser des scripts CGI en dehors des répertoires ScriptAliased : # (Vous devrez également ajouter "ExecCGI" à la directive "Options".) # AddHandler cgi-script .cgi .pl .asp .py # Pour les mappages de type (ressources négociées) : #AddHandler type-map var # # Les filtres vous permettent de traiter le contenu avant qu'il ne soit envoyé au client. # # Pour analyser les fichiers .shtml pour les inclusions côté serveur (SSI): # (Vous devrez également ajouter "Includes" à la directive "Options".) # AddType text/html .shtml AddOutputFilter INCLUDES .shtml   # # Le module mod_mime_magic permet au serveur d'utiliser divers indices à partir du # contenu du fichier lui-même pour déterminer son type. La directive MIMEMagicFile # indique au module où se trouvent les définitions de conseils. # MIMEMagicFile "conf/magic"  # # Les réponses d'erreur personnalisables sont de trois types : # 1) texte brut 2) redirections locales 3) redirections externes # # Quelques exemples : #ErrorDocument 500 "Le serveur a fait un boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://localhost/subscription_info.html # # # EnableMMAP et EnableSendfile : sur les systèmes qui le prennent en charge, # mappage mémoire ou l'appel système sendfile est utilisé pour livrer # fichiers. Cela améliore généralement les performances du serveur, mais doit # être désactivé lorsque vous servez à partir de systèmes de fichiers # montés en réseau ou si la prise en charge de ces fonctions est # autrement interrompue sur votre système. # #EnableMMAP off #EnableSendfile off # Configuration supplémentaire # # Les fichiers de configuration dans le répertoire conf/extra/ peuvent être # inclus pour ajouter des fonctionnalités supplémentaires ou pour modifier la # configuration par défaut du serveur, ou vous pouvez simplement copier leur contenu ici et modifier si # nécessaire. # Paramètres spécifiques à XAMPP Inclure "conf/extra/httpd-xampp.conf" # Paramètres Perl Inclure "conf/extra/httpd-perl.conf" # Gestion du pool de serveurs (spécifique à MPM) Inclure "conf/extra/httpd-mpm. conf" # Messages d'erreur multilingues Inclure "conf/extra/httpd-multilang-errordoc.conf" # Listes de répertoires fantaisistes Inclure "conf/extra/httpd-autoindex.conf" # Paramètres de langue Inclure "conf/extra/httpd-languages .conf" # Répertoires personnels des utilisateurs Inclure "conf/extra/httpd-userdir.conf" # Informations en temps réel sur les requêtes et la configuration Inclure "conf/extra/httpd-info.conf" # Hôtes virtuels Inclure "conf/extra/httpd -vhosts.conf" # Création et versionnage distribués (WebDAV) # Attention ! WEB_DAV est un risque de sécurité sans nouvelle configuration spécifique à l'utilisateur pour une authentification sécurisée # Inclure "conf/extra/httpd-dav.conf" # Implémente un proxy/passerelle pour Apache. Inclure "conf/extra/httpd-proxy.conf" # Divers paramètres par défaut Inclure " conf/extra/httpd-default.conf " # Connexions sécurisées (SSL/TLS) Inclure " conf/extra/httpd-ssl.conf " # # Remarque : Les éléments suivants doivent être présents pour prendre en charge # le démarrage sans SSL sur les plates-formes sans équivalent /dev/random # mais avec un mod_ssl compilé statiquement. #  SSLRandomSeed démarrage intégré SSLRandomSeed connect intégré SSLSessionCache "shmcb:logs/ssl.scache(512000)" SSLSessionCacheTimeout 300  # proxy AJP13   Inclure "conf/extra/httpd-ajp.conf" 

Si vous utilisez Ubuntu, vous devrez d'abord configurer Apache

$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

Ensuite, ajoutez ce qui suit à votre /etc/apache2/sites-available/default

ProxyRequests Off # N'oubliez pas de désactiver la ligne suivante si vous utilisez un proxy vers un NameVirtualHost ProxyPreserveHost On  Refuser la commande, autoriser Autoriser de tous  ProxyPass /geoserver http://localhost:8888/geoserver ProxyPassReverse /geoserver http://localhost:8888/geoserver 

C'est un peu délicat sous Windows, vous devrez charger des modules pour activer le proxy. Dans votre httpd.conf, ajoutez ce qui suit :

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_modulemodule modules_modules/mod_headers_sodef LoadModule module proxy_connect_module modules/mod_proxy_connect.so LoadModule headers_modulemodule modules_module modules/mod_headers_sodef donc LoadModule proxy_html_module modules/mod_proxy_html.so

A la fin de votre httpd.conf ajoutez les lignes suivantes

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

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


Vous n'avez pas besoin de configurer proxypass et proxypassreverse.

Vous aurez besoin d'un fichier proxy.cgi écrit en python et python installé sur votre serveur. vous pouvez obtenir le fichier proxy avec la distribution openlayers dans le dossier exemple. vous devrez configurer le chemin d'accès à l'interpréteur python dans la 1ère ligne et ajouter votre hôte à la liste des hôtes autorisés.