Gestion de bases de données

Préparer et configurer des hôtes virtuels sur OracleAS 10g HTTP Server

OBJECTIF : Oracle Application Server 10g

Expliquer les étapes de base de la configuration d'hôtes virtuels avec Oracle

Application Server 10g, en particulier pour Oracle HTTP Server, en renvoyant

aux sections de la documentation Oracle qui décrivent les étapes nécessaires

pour les autres composants.

Ce document a été rédigé à l'origine pour la version 9.0.4, et sa pertinence a été vérifiée

pour les versions actuelles. Comme l'hébergement virtuel d'Oracle HTTP Server n'a

pas changé d'une version à l'autre, il reste d'actualité. Toutefois, les versions récentes

comportent davantage de composants et de dépendances à prendre en compte. Cette note explique comment

configurer et tester un hôte virtuel dans Oracle HTTP Server, mais son utilisation

dans l'ensemble d'Oracle Application Server dépend de votre implémentation. Il est

toujours recommandé de consulter la documentation Oracle pour toutes les étapes. Cette

note vous oriente vers la documentation Oracle à suivre.

Voir aussi :

Note 314381.1 How to Setup Oracle HTTP Server as a Virtual Host Reverse Proxy

PORTÉE : documentation d'Oracle HTTP Server ou d'Oracle Web Cache

Cet article n'a pas pour but de fournir toutes les étapes de configuration

d'un hôte virtuel. Consultez la documentation appropriée pour les étapes elles-mêmes, soit

la documentation d'Oracle HTTP Server, soit celle d'Oracle Web Cache, selon le composant qui

assure l'hébergement virtuel. Ce document présente les étapes

qui permettent à tous les composants OracleAS de fonctionner ensemble avec un hébergement virtuel.

Notez que, dans une configuration d'hébergement virtuel, chaque situation peut être différente. Aucun

document succinct ne peut couvrir de façon exhaustive chaque scénario avec des instructions

précises, étape par étape.

Configurer des hôtes virtuels sur Oracle Application Server 10g

Au départ, la configuration d'hôtes virtuels est une tâche très simple. Comme elle peut toucher

de nombreux éléments, c'est en réalité une question complexe : il y a une série

d'étapes et de dépendances à régler chaque fois que vous changez le protocole, le nom d'hôte ou

le port utilisé dans l'URL. Un hôte virtuel peut changer le nom d'hôte ou le port.

La configuration d'un hôte virtuel dans Oracle Application Server comporte au

moins cinq grandes étapes ou considérations :

1. Ajouter un VirtualHost pour l'Infrastructure (facultatif)

2. Ajouter un VirtualHost pour le Middle Tier (le cas le plus courant)

3. Les services Single Sign-On (SSO) de l'Infrastructure doivent être

reconfigurés. Cela comprend OID et OIDDAS, mais surtout si

l'Infrastructure a introduit un VirtualHost dans sa propre installation. Cela

comprend toute configuration SSL, qui utilise un VirtualHost.

4. Les services SSO du Middle Tier doivent être reconfigurés. On parle

généralement d'application partenaire (Partner Application).

5. La configuration SSO de Portal doit être reconfigurée. Il s'agit

d'une application partenaire, mais ses étapes diffèrent de celles d'une application générique.

Il faut aussi procéder installation par installation : autrement dit, l'Infrastructure

doit fonctionner d'abord, puis le Mid-Tier. Faites d'abord fonctionner l'Infrastructure

(ou le home Identity Management distinct), puis les éventuels Mid-Tiers.

Cela dépend aussi de l'emplacement de l'hôte virtuel : sur le Mid-Tier, sur l'Infrastructure

ou sur les deux. Vous n'avez pas toujours besoin d'un VirtualHost sur l'Infrastructure. Mais si SSL

est mis en œuvre sur Oracle HTTP Server, un hôte virtuel l'est aussi.

Au départ, on ne souhaite généralement des hôtes virtuels que sur les Mid-Tiers, où il

peut y avoir plusieurs noms pour accéder à un site. Sur l'Infrastructure, un seul nom sera

probablement utilisé : vous pouvez donc simplement remplacer la valeur du paramètre Servername du fichier httpd.conf

par le nouveau nom, puis réenregistrer le HTTP Server auprès de SSO avec ce

nom. Si vous utilisez SSL, il s'agit d'un hôte virtuel distinct dans le fichier ssl.conf, qui

doit être traité séparément de la configuration globale du httpd.conf.

Remarque :

Vous n'avez rien à changer sur l'Infrastructure, sauf si vous mettez en œuvre SSL

avec SSO ou si vous souhaitez changer la valeur ServerName du serveur SSO. L'ampleur

du changement dépend de vos objectifs globaux.

Pour commencer : configurer les hôtes virtuels d'Oracle HTTP Server

La toute première étape, sur toute installation, consiste à vérifier que l'hôte virtuel fonctionne avec

la configuration souhaitée. Il peut être configuré de plusieurs façons, selon

les fonctionnalités voulues. Voici un test d'hôte virtuel qui utilise l'hébergement virtuel par port

dans Oracle HTTP Server. L'hébergement virtuel par port est la méthode la plus simple si

un autre serveur HTTP se trouve devant Oracle HTTP Server (comme Oracle Web Cache) :

---in httpd.conf---    
    Listen 8000
    Listen 8001

    NameVirtualHost *:8000      
    <VirtualHost *:8000>
        # If a different name is desired:
        ServerName yourname0.com
         # If the request is initially handled by another http server (like Web Cache):
        Port 80
        # Just to proove the virtualhost config is found:
        DocumentRoot "/space/home/oracle/orahome/Apache/Apache/htdocs/vh-yourname8000"
        # Insert any vh-specific config here
    </VirtualHost>
    
    NameVirtualHost *:8001
    <VirtualHost *:8001>
        # If a different name is desired:
        ServerName yourname1.com
        # If the request is initially handled by another http server (like Web Cache):
        Port 80
        # Just to proove the virtualhost config is found:
        DocumentRoot "/space/home/oracle/orahome/Apache/Apache/htdocs/vh-yourname8001"
       # Insert any vh-specific config here
    </VirtualHost>

---end httpd.conf---

Remarque :

Dans une configuration d'hébergement virtuel, chaque situation peut être différente. Aucun document succinct

ne peut couvrir de façon exhaustive chaque scénario avec des instructions précises, étape par étape.

Avec l'exemple ci-dessus, en supposant qu'il y a un fichier html *différent* dans les

répertoires vh-yourname8000 et vh-yourname8001, les adresses suivantes devraient fonctionner

et afficher des pages différentes :

http://yourname0:8000/
http://yourname1:8001/

Si vous passez par un équipement frontal, comme Oracle Web Cache, configuré

par défaut dans Application Server, vous devriez pouvoir utiliser le

port Listen d'Oracle Web Cache. Dans l'exemple ci-dessus, il s'agit du port 80 :

http://yourname/ --> forwards to --> http://yourname:8001/
http://yourname/ --> forwards to --> http://yourname:8001/

La première étape consiste à vérifier que les URL de base de l'Infrastructure (ou du home IM)

fonctionnent correctement. Assurez-vous que cette configuration fonctionne comme prévu... sur

l'Infrastructure, sur le Mid-Tier et/ou lorsque SSL est activé. Si cela ne fonctionne pas

comme prévu, les autres dépendances seront plus difficiles à configurer.

^^^major checkpoint 1^^^

Dépendances d'un VirtualHost sur l'Infrastructure (serveur SSO)

L'étape suivante consiste à vérifier que la configuration SSO fonctionne correctement. Voici

quelques informations sur la configuration Single Sign-On qu'il sera important

d'examiner :

    ORASSO Schema (WWSEC_ENABLER_CONFIG_INFO$)
    virtualname:port
    http://virtualname:port/pls/orasso/orasso.wwsso_app_admin.ls_login
    
    The SSO Server (orasso)
    http://virtualname:port/pls/orasso/orasso.wwsso_home.process_signon
    http://virtualname:port/pls/orasso/orasso.wwsso_app_admin.ls_login
    http://virtualname:port/pls/orasso/orasso.home
    http://virtualname:port/pls/orasso/orasso.wwsec_app_priv.logout

Référence :

Note:244112.1 Capture Single Sign-On orasso Schema Tables

Il faut éliminer toute occurrence d'un ancien nom, ou du nom de la machine,

et la remplacer par le nom virtuel et le port. Pour simplifier, supposons

que vous ne voulez qu'un seul hôte virtuel sur l'Infrastructure (ou le home IM).

Aucune configuration d'hôte virtuel n'est alors nécessaire dans le httpd.conf. Il vous

suffit de changer le paramètre ServerName, de réenregistrer le serveur HTTP auprès de SSO,

et de ne pas utiliser l'option virtualhost comme paramètre d'ossoreg.jar.

Remarque 1 :

Vous n'avez rien à changer sur l'Infrastructure, sauf si vous mettez en œuvre SSL

avec SSO ou si vous souhaitez un ServerName différent pour le serveur SSO.

Remarque 2 :

Si vous utilisez SSL, le recours au ssl.conf implique l'utilisation d'un hôte virtuel pour la

configuration SSL. Consultez la documentation indiquée plus bas pour un Mid-Tier si

des VirtualHosts *sont* souhaités sur l'Infrastructure. Suivez ensuite les étapes 6 à 10 pour

reconfigurer le serveur SSO. Notez que vous pouvez configurer UN seul hôte virtuel

et donner la même valeur au Servername global.

Nous verrons d'abord la méthode la plus simple pour configurer un hôte virtuel non SSL

sur l'Infrastructure, afin de distinguer les étapes SSO des autres étapes :

ACTIONS

-------

1. Dans le httpd.conf, en le modifiant avec Application Server Control :

remplacez ceci :

ServerName machinename.domain.com

par ceci :

       ServerName 

Remarque :

On suppose ici que "virtualname" se résout en l'adresse IP de cette machine.

Ce n'est toutefois pas important pour la requête initiale, car le serveur HTTP

répond lorsque l'adresse IP est demandée. Le paramètre Servername

intervient lors de la définition des en-têtes de réponse appropriés, avec

le paramètre Port.

2. Vérifiez qu'aucune configuration "VirtualHost" n'a été ajoutée dans le httpd.conf.

3. C'est le moment de changer les paramètres Listen et Port pour le ou les ports souhaités.

4. Redémarrez le HTTP_Server.

5. Testez l'accès :

       http://virtualname:port/

6. Configurez SSO avec les nouveaux paramètres d'URL :

       $ORACLE_HOME/sso/bin/ssocfg.sh http virtualname 7777

Cette opération est *toujours* nécessaire lorsque vous changez le protocole, l'hôte ou le port)

7. Vérifiez qu'OID est correctement configuré :

Ouvrez OID Directory Manager et procédez comme suit :

Connectez-vous avec le compte orcladmin.

Développez l'arborescence :

Entry Management
         cn=OracleContext
           cn=Products
             cn=DAS

Sélectionnez la page cn=OperationURLs ; ne développez pas l'arborescence, cliquez simplement sur

la page cn=OperationURLs. Le volet de droite affiche un certain nombre de

champs ou d'attributs. Le dernier champ, orcldasurlbase,

doit pointer vers le HTTP Server de l'Infrastructure et son port. Modifiez cette

entrée pour refléter le nouveau nom et le nouveau port, p. ex. http://virtualname:port.

(il s'agit simplement de l'"url" souhaitée : n'incluez donc pas le port 80

ou 443).

8. Consultez cette note pour rafraîchir le cache d'OID :

Note:292380.1 How to Refresh Cache for OID Parameters

9. Réenregistrez le OHS de l'Infrastructure auprès de SSO...

- Positionnez $ORACLE_HOME et l'environnement sur les répertoires de l'Infrastructure.

- Vérifiez que vous utilisez le Java fourni avec l'installation,

avec la commande "which java".

Collez ceci dans un fichier texte brut, mettez le tout sur une seule ligne en adaptant

les valeurs à votre configuration, puis collez-le dans la ligne de commande :

       $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/sso/lib/ossoreg.jar
       -oracle_home_path 
       -site_name  \
       -config_mod_osso TRUE \
       -mod_osso_url http://virtualname:port
       -u oracle  \ # since oracle user starts ohs

       Sometimes needed:
       -ssoDBConnect :1521:asdb
       -pass 

L'objectif est de définir la bonne URL. Comme le VirtualHost *est* le Servername,

nous n'avons pas besoin de l'option -virtualhost, et cet enregistrement définira le

fichier osso.conf obscurci par défaut.

10. Redémarrez le serveur HTTP

Voilà, nous l'espérons, "10 étapes pour faire fonctionner l'Infrastructure avec un hôte virtuel"

Testez-le uniquement sur l'Infrastructure :

        http://virtualname:port/pls/orasso/ --> log in and out as orcladmin
        http://virtualname:port/oiddas/ --> log in and out as orcladmin

Ne continuez pas tant que cela ne fonctionne pas. Une fois que cela fonctionne, vous pouvez configurer

des VirtualHosts sur le Mid-Tier et faire fonctionner Portal avec eux. Si vous

souhaitez plusieurs hôtes virtuels, ou si vous configurez SSL, configurez

l'Infrastructure comme s'il s'agissait d'un Mid-Tier (selon les instructions ci-dessous),

puis suivez les étapes 6 à 10 ci-dessus. Notez que vous pouvez configurer UN seul hôte

virtuel, donner la même valeur au Servername (et au Port) global,

et tout devrait bien fonctionner. Ce sont là les seules dépendances. Si vous

utilisez plusieurs hôtes virtuels, ou si vous activez l'hôte virtuel SSL, il y

a davantage de dépendances.

^^^point de contrôle majeur 2^^^

Remarque : dans la version 10.1.2.x, la documentation a été grandement améliorée et inclut toutes les

étapes de configuration des dépendances après un changement de nom ou de port. Un bon point

de départ est la documentation Oracle suivante :

Oracle Application Server Administrator's Guide 10g Release 2 (10.1.2)

http://download.oracle.com/docs/cd/B14099_19/core.1012/b13995/toc.htm

"4 Managing Ports"

En général, un changement de port s'effectue un home Oracle à la fois...

Par défaut, home Infrastructure ou Identity Management :

"4.4.3 Changing the HTTP Server Port on an Identity Management Installation"

http://download.oracle.com/docs/cd/B14099_19/core.1012/b13995/ports.htm#i1039402

Configurer un VirtualHost ne signifie pas nécessairement changer le port, mais cela peut être le cas.

Les mêmes étapes sont requises lorsque vous changez le protocole, le nom ou le port d'accès

au serveur SSO.

Dépendances d'un VirtualHost sur le Middle Tier

L'étape suivante consiste à configurer les Mid-Tiers avec la ou les URL souhaitées.

p. ex. :

http://mid-vh:port/

Utilisez la documentation suivante pour configurer des VirtualHosts dans

Oracle HTTP Server, sur le Mid-Tier ou sur l'Infrastructure :

Oracle HTTP Server Administrator's Guide 10g (9.0.4)

Managing Virtual Hosts

http://download.oracle.com/docs/cd/B10464_01/portal.904/b10356/cg_advnc.htm#1054433

Mais s'il s'agit d'un Mid-Tier, vous faites probablement passer l'hôte virtuel par Web Cache :

1 Introduction to OracleAS Web Cache

Virtual Hosting

http://download.oracle.com/docs/cd/B10464_01/caching.904/b10401/intro.htm#1020047

http://mid-vh:wc-port/ --> Should forward to the Mid OHS.

Notez que, même si c'est Oracle Web Cache qui assure l'hébergement virtuel, la configuration

d'Oracle HTTP Server dans le fichier httpd.conf reste nécessaire, comme dans l'exemple ci-dessus.

Une fois que tout cela fonctionne, il faut reconfigurer SSO. Consultez cette documentation :

Oracle Application Server Single Sign-On Administrator's Guide 10g (9.0.4)

4 Configuring and Administering Partner Applications

Configuring mod_osso with Virtual Hosts

http://download.oracle.com/docs/cd/B10464_02/manage.904/b13791/part_apps.htm#sthref243

Et enfin (une grande partie de ces informations s'y trouve, si seul Portal vous concerne) :

Oracle Application Server Portal Configuration Guide 10g (9.0.4)

5.4 Configuring Virtual Hosts

http://download.oracle.com/docs/cd/B10464_01/portal.904/b10356/cg_advnc.htm#1054433

Pour la version 10.1.2, des étapes similaires sont documentées dans les guides respectifs

mentionnés. Une configuration courante dans ce domaine est toutefois décrite dans la

note Metalink suivante :

Note 378003.1 How to Configure Virtual Hosts on HTTP_Server for LBR Access or SSL Termination

Remarque :

Les instructions données ici sont volontairement moins détaillées, car il peut

exister de nombreuses configurations et topologies différentes. Dans une configuration d'hébergement virtuel, chaque

situation peut être différente. Aucun document succinct ne peut couvrir de façon exhaustive chaque

scénario avec des instructions précises, étape par étape. Le but n'est pas ici de

réécrire la documentation Oracle indiquée ci-dessus. Il faut la lire pour bien

comprendre, en tenant compte de votre topologie.

Une fois configurées les requêtes traitées par Oracle HTTP Server, chaque fois que l'adresse

d'accès au serveur change, d'autres composants d'Oracle Application Server doivent

être configurés pour cette nouvelle adresse. Pour Oracle Application Server 10g (10.1.2.0.2),

types d'installation Mid-Tier, il s'agit généralement d'un simple changement de port, et la

documentation suivante permet de reconfigurer les différents composants :

Oracle Application Server Administrator's Guide 10g Release 2 (10.1.2)

http://download.oracle.com/docs/cd/B14099_19/core.1012/b13995/toc.htm

4 Managing Ports

4.3.5.1 Changing the OracleAS Web Cache Listen Ports

Tâche 1 : permettre à OracleAS Web Cache de s'exécuter en tant que root pour les ports inférieurs à 1024 (UNIX uniquement)

Tâche 2 : changer le port d'écoute d'OracleAS Web Cache

Tâche 3 : changer le port du site logique d'OracleAS Web Cache

Tâche 4 : mettre à jour la directive Port d'Oracle HTTP Server

Tâche 5 : mettre à jour Application Server Control Console

Tâche 6 : mettre à jour mod_osso

Tâche 7 : mettre à jour la configuration d'OracleAS Portal

Tâche 8 : mettre à jour les fournisseurs Web

Tâche 9 : mettre à jour OracleAS Wireless

Tâche 10 : mettre à jour OracleBI Discoverer

Tâche 11 : mettre à jour OracleAS Reports Services

Tâche 12 : redémarrer l'instance Middle Tier

Comme de nombreux composants sont concernés par un changement d'adresse (protocole,

nom d'hôte ou port), les instructions pour administrer ces changements peuvent se trouver dans

plusieurs guides de configuration. Les concepts de base devraient être les mêmes, mais

certaines étapes peuvent être propres à chaque composant. Ce qui suit se trouve

dans le guide de configuration de Portal :

Oracle Application Server Portal Configuration Guide 10g Release 2 (10.1.2)

5.4 Configuring Virtual Hosts

http://download.oracle.com/docs/cd/B14099_19/portal.1012/b14037/cg_advnc.htm#i1054431

--------------------------------------------------------------------------------

En résumé, la configuration d'hôtes virtuels avec Oracle Application Server

doit se faire étape par étape, et seulement après avoir soigneusement planifié les étapes

adaptées à la situation visée. Les hôtes virtuels peuvent être configurés sur Oracle

Web Cache et/ou sur Oracle HTTP Server. Une fois que l'hôte virtuel fonctionne correctement,

le serveur SSO et Oracle Portal doivent être reconfigurés pour tenir compte du changement d'URL.

--------------------------------------------------------------------------------

ANNEXE : Oracle HTTP Server, serveurs basés sur Apache

Dans le httpd.conf ou le ssl.conf, les paramètres Servername et Port servent tous deux

aux en-têtes de "réponse". Autrement dit, ils n'ont rien à voir avec la façon dont

Oracle HTTP Server écoute les requêtes. Les serveurs basés sur Apache écoutent sur l'adresse IP

d'installation et sur le port défini par le paramètre Listen. C'est au DNS de

résoudre correctement le nom en adresse IP. Tout fonctionne bien : la requête est traitée et

reçoit une réponse. Si Servername et Port sont mal définis, le mauvais

en-tête Host: est envoyé au navigateur. Cela ne change rien pour l'utilisateur,

ni pour Oracle HTTP Server, qui fait simplement ce qu'on lui

demande. Les en-têtes entrent en jeu parce qu'une application peut utiliser l'en-tête

(comme un cookie) et s'y référer pour les requêtes suivantes. Autrement dit,

l'application dit au navigateur : "envoie simplement une autre requête à l'emplacement

précédent". Le navigateur récupère l'en-tête Host: (sous la forme servername:port)

et, avec quelques autres, construit l'URL à transmettre. Dans le cas de SSO, celui-ci récupère

les en-têtes nécessaires, les stocke sous forme d'une seule chaîne et redirige la requête

vers l'URL précédente. L'"application" est ici SSO. Il arrive aussi que Portal

récupère ces informations, et Portal devient alors l'"application". Cela dépend

de l'endroit où se fait le traitement et de sa nature. Si quelque chose échoue à la connexion, c'est

"sso" qui joue le rôle d'application. En plus d'une configuration correcte, l'enregistrement

SSO est tout aussi important.

C'est là qu'apparaît une dépendance entre plusieurs composants. Un composant applicatif

peut exiger certains réglages pour fonctionner de façon optimale.

Portal (en tant que composant applicatif) utilise RDBMS, OHS, WC, SSO, OC4J_Portal

SSO (en tant que composant applicatif) utilise OID, OHS, WC, OC4J_SECURITY

WC est autonome (utilisé par un composant pour permettre l'accès à l'application)

OHS est autonome (utilisé par un composant pour permettre l'accès à l'application)

Si vous définissez les paramètres Servername et Port dans le httpd.conf ou le ssl.conf,

ce sera pour une seule raison : lorsque le nom et le port frontaux de l'URL sont

différents de l'adresse IP sur laquelle Oracle HTTP Server est installé, ou

différents du paramètre Listen. (Sur la même machine, le Servername

sera le même ; seul le Port sera différent.) L'utilisation ou non de SSL ou d'hôtes

virtuels est aussi à prendre en compte. C'est une notion à 'saisir'

et à appliquer dans chaque cas.

Diagnostiquer un problème parmi ces dépendances peut être difficile. Mais il est

utile de procéder une étape à la fois, en vérifiant que chaque composant autonome fonctionne

par lui-même. Par exemple, une page statique par défaut doit être accessible via Oracle

HTTP Server. Si vous utilisez Oracle Web Cache, cette même page doit être accessible via

le port Listen d'Oracle Web Cache. Vérifiez ensuite que SSO et/ou Portal sont configurés correctement

pour l'URL souhaitée (protocol://servername:port), en gardant à l'esprit qu'une certaine

configuration dans Oracle Web Cache et/ou Oracle HTTP Server peut être nécessaire pour un

fonctionnement optimal.