Configuration de GeoNode pour la Production

Cette page documente les recommandations pour la configuration des GeoNode dans des environnements de production. Les étapes mentionnées dans la première section sont requis pour exécuter les GeoNode, ceux de la deuxième section sont soit en option ou des façons d’améliorer les performances.

Note

Ce document fait de nombreuses références à la <host> variable, veuillez remplacer par l’adresse IP de votre GeoNode ou l’entrée DNS.</host>

Par exemple : au lieu de “http://<host>/geoserver’‘, écrivez: ‘’ d’http://mygeonode.com/geoserver ‘’ ou ‘’ d’http://127.0.0.1/geoserver ‘’</host>

Définir la valeur correcte de GeoServer URL du Proxy

Accédez au ‘’ d’http://localhost/geoserver ‘’, connectez-vous et cliquez sur le lien ‘’ Global’’ dans la section paramètres.

Note

Le nom d’utilisateur par défaut de Geoserver est admin à geoserver comme mot de passe. Changez le plus rapidement possible.

../../_images/geoserver_global_settings.png

Trouver le champ “URL de Base du Proxy’‘, y mettre l’adresse complète:

http://<host>/geoserver/
../../_images/geoserver_proxy_url.png

Configurer le Module d’impression

Cette vie dans le répertoire de données GeoServer ‘’ /usr/share/geoserver/data/printing/config.yaml’‘, ajoute l’adresse IP de votre serveur ou nom de domaine à la liste des exceptions. Veuillez consulter le http://docs.geoserver.org/2.4.x/en/user/datadirectory/index.html pour plus d’informations sur la gestion du répertoire de données geoserver:

hosts:
  - !dnsMatch
    host: YOUR_IP_ADDRESS
    port: 80

Ajouter des couches de Google, Bing et les autres fournisseurs

Bing

Obtenir une clé API de Microsoft à http://bingmapsportal.com/ et placez-le dans ‘’ local_settings.py’‘.:

BING_API_KEY="zxcxzcXAWdsdfkjsdfWWsdfjpowxcxz"

Copiez-y le dictionnaire ‘’ MAP_BASELAYERS’’ de ‘’ settings.py’’ ‘’ local_settings.py’’ et ajouter l’extrait suivant:

},{
"source": {
           "ptype":"gxp_bingsource",
           "apiKey": BING_API_KEY
          },
"group":"background",
"name":"Aerial",
"visibility": False,
"fixed": True,

Google

Obtenir une clé API de Google à http://code.google.com/apis/maps/signup.html et placez-le dans ‘’ local_settings.py’‘, par exemple:

GOOGLE_API_KEY="zxcxzcXAWdqwdQWWQEDzxcxz"

Copiez-y le dictionnaire ‘’ MAP_BASELAYERS’’ de ‘’ settings.py’’ ‘’ local_settings.py’’ (ou modifier l’extrait précédemment copié) et ajouter l’extrait suivant:

},{
"source": {
     "ptype":"gxp_googlesource",
     "apiKey": GOOGLE_API_KEY
    },
"group":"background",
"name":"SATELLITE",
"visibility": False,
"fixed": True,

Configuration de sitemaps

GeoNode peut générer automatiquement un plan sitemap pour soumission aux moteurs de recherche qui peuvent les aider pour indexer votre site GeoNode plus efficacement.

Afin de générer le sitemap correctement, le nom de domaine de sites doit être défini dans le cadre de sites. Ce qui nécessite une connexion d’accès superutilisateur à l’admin interface et naviguez vers le module sites et remplacez le nom de domaine example.com (et port le cas échéant). L’interface d’administration est accessible à<host>de http:///admin/sites/site /. Cliquez sur le lien ‘’ example.com. ‘’ et changer le ‘’ nom de domaine ‘’ et ‘’ afficher nom ‘’ entrées pour correspondre à votre système.</host>

Il est possible de « informer » google des changements à votre sitemap. Ceci est accompli à l’aide de la commande de gestion ping_google. Plus d’informations peuvent être trouvés ici il est recommandé de mettre cet appel dans une tâche cron (régulier) pour mettre à jour périodiquement les google de http://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/#django.contrib.sitemaps.ping_google.

Configuration d’enregistrement de l’utilisateur

Vous pouvez configurer GeoNode pour permettre aux nouveaux utilisateurs de s’inscrire sur le web. Nouveaux inscrits recevront un e-mail les invitant à activer leur compte.

Pour autoriser l’enregistrement nouvel utilisateur :

  1. Mettre en place le backend de courriel pour Django (voir ‘ Django documentation <http: docs.djangoproject.com/en/dev/topics/email/#e-mail-backends=”“>’ _) et ajoutez les paramètres appropriés pour ‘’./src/GeoNodePy/geonode/local_settings.py’‘. Par exemple::</http:>

    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'smtp.gmail.com'
    EMAIL_HOST_USER = 'foo@gmail.com'
    EMAIL_HOST_PASSWORD = 'bar'
    EMAIL_PORT = 587
    EMAIL_USE_TLS = True
    
  2. Dans le même fichier de paramètres mis:

    REGISTRATION_OPEN=True
    
  3. Avec l’application Django en cours d’exécution, le nom de domaine du service correctement défini via l’interface admin comme indiqué ci-dessus dans la section de Sitemaps. (Ce nom de domaine est utilisé dans les emails d’activation de compte.).

  1. Nous sommes prêts à redémarrer GeoNode (Apache) et tester l’installation. Redémarrez Apache:

    $ sudo service apache2 restart
    
  2. (Facultatif) Désactiver l’approbation automatique des nouveaux utilisateurs. Les administrateurs recevrait un email et dois approuver manuellement les nouveaux comptes. Pour que cette option fonctionne, un courriel soutenu doit être défini pour la notification d’approuver le nouveau compte par e-mail les utilisateurs ayant le statut personnel:

    ACCOUNT_APPROVAL_REQUIRED = True
    

Pour vous inscrire comme nouvel utilisateur, cliquez sur le lien ‘’ inscription ‘’ dans l’en-tête d’indice de GeoNode.

Paramètres supplémentaires

D’autres choses qui ont besoin de peaufinage :

  • Accessibles sur le Web télécharge répertoire pour photos de profil utilisateur

Fichier d’Exclusion de robot

GeoNode a plusieurs vues qui exigent des moyens considérables pour répondre correctement - par exemple, les liens de téléchargement sur les pages de détail de couche exigent GeoServer générer dynamiquement la sortie en PDF, PNG, format etc..

Robots pour le web moteurs de recherche tels que Google peut provoquer des problèmes par la suite rapidement beaucoup de ces liens dans la succession.

Afin de demander que les “robots” ne font pas de demandes directement à GeoServer, vous pouvez vous assurer que les demandes de ‘’ /robots.txt’’ retournent un fichier texte avec le contenu suivant:

User-agent: *
Disallow: /geoserver/

Cela n’affectera que les agents web automatisé ; en particulier les navigateurs Web ne sont pas affectées.

Gestion de mémoire

Au moment de la libération de GeoNode 1.0, le manuel de GeoNode recommandé au moins 4 Go de RAM pour les serveurs exécutant GeoNode.

Tandis que 4Go * physique * RAM est suffisante, il est recommandé que les machines être configuré avec au moins 6 Go de total * virtuel * mémoire.

Par exemple, une machine avec 4Go de RAM et 2 Go swap l’espace physique devrait être en mesure d’exécuter GeoNode, mais si vous souhaitez exécuter sans un fichier d’échange puis vous devez configurer la machine avec au moins 6 Go de RAM.

Sur les hôtes Linux et MacOSX, vous pouvez vérifier la mémoire vive disponible avec la commande suivante:

$ free -m
             total         used       free     shared    buffers     cached
Mem:          6096         3863       2232          0          0          0
-/+ buffers/cache:         3863       2232
Swap:            0            0          0

La colonne « total » répertorie la mémoire physique disponible et l’espace de swap en mégaoctets ; les additionner donne la quantité de mémoire virtuelle disponible pour le système.

Dans cet exemple, il n’y a aucun espace d’échange afin que le champ est 0 et la mémoire vive disponible sur le système est 6096MB (6 Go).

Optimisation de l’intégration de sécurité

GeoServer délègue l’authentification et l’autorisation de GeoNode. La configuration par défaut utilise un point de terminaison HTTP GeoNode pour découvrir l’utilisateur actuel et les couches qui sont accessibles. Pour la production, il est conseillé d’utiliser une connexion de base de données.

Installer la procédure stockée

Le code SQL de la procédure stockée est distribué avec l’archive d’application web GeoServer et peut être trouvé à: file:’WEB-INF/classes/org/geonode/security/geonode_authorize_layer.sql‘ dans le répertoire webapps. Il peut être chargé à l’aide de la commande « psql » en procédant comme suit (si ne pas en utilisant tomcat6 ou Ubuntu, localisez le répertoire webapps pour votre configuration):

$ cd /var/lib/tomcat6/webapps
$ sudo su - postgres
$ psql -d YOUR_DATABASE < geoserver/WEB-INF/classes/org/geonode/security/geonode_authorize_layer.sql

GeoServer d’utiliser le Client de sécurité de base de données de configuration

Si un fichier XML de configuration contexte n’existe pas déjà, créez un pour GeoServer. Si vous utilisez Tomcat6 sur Ubuntu, ce fichier se trouve à: file:’/etc/tomcat6/Catalina/localhost/geoserver.xml‘. Si la création d’un fichier, le code XML suivant devrait être ajouté (remplacez ALLCAPS par vos valeurs spécifiques):

<Context path="/geoserver"
    antiResourceLocking="false" >
  <Parameter name="org.geonode.security.databaseSecurityClient.url"
    value="jdbc:postgresql://localhost:5432/DATABASE?user=USER&amp;password=PASSWORD"/>
</Context>

Si le fichier existe déjà, il suffit d’ajouter l’élément « Paramètre » d’en haut.

Vérification de la base de données sécurité Client

Pour vérifier la modification des paramètres, regarder dans les logs de GeoServer pour une ligne qui fait remarquer: « à l’aide de geonode de base de données sécurité client ». Si des problèmes surviennent, vérifiez votre configuration de connexion tel que spécifié dans le fichier de contexte ci-dessus.

Configuration du conteneur de Servlet

GeoServer est le plus de composant de ressources intensif de GeoNode.

Il y a quelques notes générales sur la configuration GeoServer aux environnements de production dans le “Manuel de GeoServer <http: docs.geoserver.org/stable/en/user/production/index.html=”“>’ _.</http:>

Cependant, voici quelques recommandations de GeoServer ayant des besoins spécifiques de le GeoNode à l’esprit.

JVM Options

JRE utilisé avec GeoNode devrait être celui distribué par Oracle.

D’autres comme OpenJDK peuvent fonctionner mais Oracle JRE est recommandé pour le rendu de performance plus élevé.

Options de démarrage doivent inclure ce qui suit:

-Xmx1024M -Xms1024M -XX:MaxPermSize=256M \
    -XX:CompileCommand=exclude,net/sf/saxon/event/ReceivingContentHandler.startEvent

Ceux-ci peuvent être spécifiés à l’aide de la variable de ‘’ CATALINA_OPTS’’ dans le fichier ‘’ bin/catalina.sh’’ de Tomcat, ou ‘’ JETTY_OPTS’’ en jetée ‘’ bin/jetty.sh’‘.

Contraindre les Threads de travail GeoServer

Alors que la machine virtuelle Java fournit la gestion de la mémoire pour la plupart des opérations dans des applications Java, la mémoire utilisée pour le rendu (dans le cas de GeoServer, répondant aux requêtes GetMap WMS) n’est pas gérée de cette manière, donc il est attribué en plus de la mémoire autorisée par les options de JVM ci-dessus.

Si GeoServer reçoit plusieurs demandes simultanées, elle peut augmenter l’utilisation de la mémoire de manière significative, il est donc recommandé de limiter le nombre de requêtes simultanées au niveau du conteneur de servlet (c’est à dire, jetée ou Tomcat).

Tomcat, vous pouvez modifier ‘’ conf/server.xml’‘. Par défaut, ce fichier contient une entrée définissant un ContextHandler:

<Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443"/>

Ajoutez un attribut ‘’ maxThreads’’ pour limiter le nombre de threads (demandes simultanées) à 50 (la valeur par défaut de Tomcat est 200):

<Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" maxThreads="50"/>

Note

Cette configuration est possible dans la jetée ainsi, mais pas encore documentée dans ce manuel.

JAI native et JAI ImageIO

À l’aide de l’implémentation de code natif de JAI et JAI ImageIO accélère GeoServer, exigeant ainsi une concurrence moindre au même niveau de débit.

Le manuel de GeoServer contient ‘ instructions spécifiques à la plateforme <http: docs.geoserver.org/stable/en/user/production/java.html#install-native-jai-and-jai-image-i-o-extensions=”“>’ _ pour la configuration JAI et JAI ImageIO.</http:>

Configuration avancée de GeoServer

Il y a quelques commandes à être définie dans la configuration de GeoServer lui-même ainsi.

Dans la page Paramètres de JAI

../../_images/GeoServer-JAI-Settings.png

Il y a deux considérations pour les paramètres de la JAI.

  • Activez les JPEG et PNG accélération Native accélérer les performances des requêtes WMS

  • Désactiver la tuile recyclage comme cette optimisation est moins pertinente sur les implémentations de JVM récentes et a certains frais généraux lui-même.

Sur la page Service WMS

../../_images/GeoServer-Web-Map-Service.png

Il n’y a qu’un seul examen pour la page du Service de cartographie Web

  • Ne définissez pas les « limites de consommation de ressources ». Cela paraît un peu contre intuitif, mais ces limites sont implémentées de manière inefficace tels que sauf si demande beaucoup de ressources est courantes sur votre serveur, il est plus efficace d’éviter les limites. Une meilleure mise en œuvre de cette fonctionnalité est disponible pour GeoServer 2.1 et est incorporée au point 1.1 de le GeoNode.

Impression avec le Service d’impression de Mapfish

La carte GeoNode compositeur peut cartes “d’impression” à des documents PDF en utilisant le service d’impression Mapfish. La façon recommandée pour faire fonctionner ce service est en utilisant l’extension de l’impression à GeoServer (si vous utilisez le paquet GeoNode pré-construit, cette extension est déjà installé pour vous). Cependant, le service d’impression comprend des restrictions sur les serveurs qui peuvent fournir des tuiles de la carte pour les cartes imprimées. Ces restrictions ont un défaut assez strict, de sorte que vous voudrez peut-être pour desserrer ces contraintes.

Ajout de serveurs de nom d’hôte

Le Mapfish module d’impression est configuré via un “YAML <yaml>’ _ fichier de configuration, généralement appelé : file:’print.yaml‘. Si vous utilisez le plugin GeoServer pour exécuter le module d’impression, ce fichier de configuration peut être trouvé à: file:’{GEOSERVER_DATA_DIR}/printing/config.yaml’. La configuration par défaut doit contenir une entrée comme suit::</yaml>

hosts:
  - !dnsMatch
    host: labs.metacarta.com
    port: 80
  - !dnsMatch
    host: terraservice.net
    port: 80

Vous pouvez ajouter des entrées de l’hôte/port sur cette liste pour permettre d’autres serveurs.

Voir aussi

La documentation de Mapfish sur la configuration du module d’impression.

La documentation GeoServer sur la configuration du module impression.