Uitleg van configuratiebestanden | AEM

Ontdek een diepgaande uitsplitsing van configuratiebestanden in de Dispatcher-server van Adobe Managed Services. Ontdek hun betekenis, naamconventies en praktische toepassingen.

Beschrijving description

Omgeving

Experience Manager

Probleem/symptomen

Dit document wordt uitgesplitst en legt alle configuratiebestanden uit die zijn geïmplementeerd in een standaard ingebouwde Dispatcher-server die is ingericht in Adobe Managed Services. Het gebruik ervan, de naamgevingsconventie, enz.

noemend Overeenkomst

Apache Webserver geeft eigenlijk niet om wat de bestandsextensie van een bestand is wanneer de bestandsextensie wordt toegewezen aan een include-instructie of een optionele instructie wordt opgenomen. U kunt de namen van de bestanden correct benoemen, zodat conflicten en verwarring worden voorkomen. De namen die worden gebruikt, beschrijven het bereik van waar het bestand wordt toegepast, waardoor het leven eenvoudiger wordt. Als alles .conf wordt genoemd wordt dit echt verwarrend. Gebruik geen bestanden en extensies met een slechte naam.

Hieronder volgt een lijst met de verschillende aangepaste bestandsextensies en naamgevingsconventies die worden gebruikt in een standaard Dispatcher met AMS-configuratie.

Dossiers bevat in conf.d/

Bestand
Bestandsbestemming
Beschrijving
< FILENAME > .conf
/etc/httpd/conf.d/
Een standaard Enterprise Linux-installatie gebruikt deze bestandsextensie en neemt de map op als een plaats om de instellingen in httpd.conf te negeren en u toe te staan om aanvullende functionaliteit op algemeen niveau in Apache toe te voegen.
< FILENAME > .vhost

Staged: /etc/httpd/conf.d/available_vhosts/

Actief:

/etc/httpd/conf.d/enabled_vhosts/

*Nota: .vhost de dossiers moeten niet in de enabled_vhosts omslag maar gebruiksmunts aan een relatieve weg aan het available_vhosts/.vhost- dossier

worden gekopieerd

*.vhost-bestanden (virtuele host) zijn < VirtualHosts >  vermeldingen die overeenkomen met hostnamen en toestaan dat Apache elk domeinverkeer met verschillende regels behandelt. Van het .vhost-bestand, andere bestanden, zoals herschrijven, whitelisting, enz. is opgenomen.
< FILENAME > _rewrite.rules
/etc/httpd/conf.d/rewrites/
*_rewrite.rules bestanden slaan mod_rewrite -regels op die expliciet door een hostbestand moeten worden opgenomen en verbruikt
< FILENAME > _whitelist.rules
/etc/httpd/conf.d/whitelists/
*_ipwhitelist.rules-bestanden bevinden zich in de bestanden *.vhost. Het bevat IP regex of staat regels toe ontkennen om IP flits toe te staan. Als u de weergave van een virtuele host wilt beperken op basis van IP-adressen, genereert u een van deze bestanden en neemt u deze op in het bestand *.vhost

Dossiers bevat in conf.modules.d/

Bestand
Bestandsbestemming
Beschrijving
< BESTANDSNAAM > .any
/etc/httpd/conf.dispatcher.d/
De AEM Dispatcher Apache Module biedt de instellingen van *.alle bestanden. Het standaard bovenliggende include-bestand is conf.dispatcher.d/dispatcher.any
< FILENAME > _farm.any

Staged

:

/etc/httpd/conf.dispatcher.d/available_farm/

Actief

:

/etc/httpd/conf.dispatcher.d/enabled_farm/

*Nota: deze landbouwbedrijfdossiers moeten niet in de enabled_farm omslag maar gebruiks symlinks aan een relatieve weg aan beschikbaar_farm/ _farm.any- dossier

worden gekopieerd

* farm.any de dossiers zijn inbegrepen binnen het conf.dispatcher.d/dispatcher.any- dossier. Deze ouderlandbouwbedrijfdossiers bestaan om modulegedrag voor elk terug te geven of websitetype te controleren. De dossiers worden gecreeerd in de available_farm folder en toegelaten met een symlink in de enabled_farm folder.

het auto-omvat hen door naam van het dispatcher.any- dossier.

de landbouwbedrijfdossiers van de Basislijn beginnen met 000
om ervoor te zorgen zij eerst worden geladen.

de landbouwbedrijfdossiers van de Douane zouden na door hun aantalregeling bij 100_ moeten worden geladen om behoorlijk te verzekeren omvatten gedrag.
< FILENAME > _filters.any
/etc/httpd/conf.dispatcher.d/filters/
*_filters.om het even welke dossiers zijn inbegrepen van binnen conf.dispatcher.d/enabled_farm/*_farm.om het even welke dossiers. Elk landbouwbedrijf heeft een reeks regels die veranderen welk verkeer uit zou moeten worden gefiltreerd en niet het aan renderers maken.
< FILENAME > _vhosts.any
/etc/httpd/conf.dispatcher.d/vhosts/
*_vhosts.any files are included from within the conf.dispatcher.d/enabled_farm/*_farm.any files. Deze bestanden zijn een lijst met hostnamen of uri-paden die door blob-overeenkomsten moeten worden aangepast om te bepalen welke renderer moet worden gebruikt om die aanvraag te bedienen
< FILENAME > _cache.any
/etc/httpd/conf.dispatcher.d/cache/
*_cache.any files are included from within the conf.dispatcher.d/enabled_farm/*_farm.any files. Deze bestanden geven aan welke items in cache worden geplaatst en welke niet
< FILENAME > _invalidate_allowed.any
/etc/httpd/conf.dispatcher.d/cache/
*_invalidate_allowed.any files are included within the conf.dispatcher.d/enabled_farm/*_farm.any files. Zij specificeren welke IP adressen worden toegestaan om gelijke en ongeldigingsverzoeken te verzenden.
< FILENAME > _clientheaders.any
/etc/httpd/conf.dispatcher.d/clientheaders/
*_clientheaders.any files are included within the conf.dispatcher.d/enabled_farm/*_farm.any files. Zij specificeren welke cliëntkopballen tot elke renderer zouden moeten worden overgegaan.
< FILENAME > _renders.any
/etc/httpd/conf.dispatcher.d/renders/
*_renders.any files are included within the conf.dispatcher.d/enabled_farm/*_farm.any files. Zij specificeren IP, haven, en onderbrekingsmontages voor elke renderer. Een juiste renderer kan een livecycle-server of een AEM zijn waar de Dispatcher de aanvragen van

Vermijden Problemen

Wanneer u de naamgevingsconventie volgt, vermijdt u enkele tamelijk eenvoudige fouten die rampzalige resultaten kunnen opleveren. Laten we een paar voorbeelden noemen.

Voorbeeld van het Probleem

Als plaatsvoorbeeld voor ExampleCo worden twee configuratiedossiers gecreeerd door de ontwikkelaars van de configuraties van Dispatcher.

/etc/httpd/conf.d/exampleco.conf

<VirtualHost *:80>

    ServerName  "exampleco"

    ServerAlias "www.exampleco.com"

    .......... SNIP ...............

    <IfModule mod_rewrite.c>

        ReWriteEngine   on

        LogLevel warn rewrite:trace1

        Include /etc/httpd/conf.d/rewrites/exampleco.conf

    </IfModule>

</VirtualHost>

/etc/httpd/conf.d/rewrites/exampleco.conf

RewriteRule /$ /content/exampleco/en.html [ PT,L]

RewriteRule /robots.txt$ /content/dam/exampleco/robots.txt [ PT,L]

POTENTIËLE GEVAAR

A. De bestandsnamen zijn gelijk.

Als het vhost-bestand per ongeluk in de map rewrites wordt geplaatst, wordt het herschreven-bestand in de map vhosts geplaatst. Het lijkt erop dat het bestand correct is geïmplementeerd, maar Apache geeft een fout weer en het probleem is niet direct zichtbaar.

hoe wordt dit typisch een kwestie?

Als de twee bestanden naar dezelfde locatie worden gedownload, kunnen ze zichzelf overschrijven of ze van elkaar onderscheiden, waardoor het implementatieproces een nachtmerrie wordt.

B. De bestandsextensies zijn hetzelfde en worden automatisch ingesloten

De bestandsextensies zijn gelijk en gebruiken een automatisch opgenomen extensie die in Apache automatisch .conf-bestanden bevat in veel van de standaardmappen.

hoe dit typisch een kwestie wordt?

Als het hostbestand met de extensie .conf in de map /etc/httpd/conf.d/ wordt geplaatst, wordt het in Apache geladen in het geheugen. Dit is normaal gesproken OK, maar als het bestand met herschrijfregels met de extensie .conf in de map /etc/httpd/conf.d/ wordt geplaatst, wordt het automatisch opgenomen en wordt het globaal toegepast, wat leidt tot verwarring en ongewenste resultaten.

Resolutie resolution

Geef de bestanden een naam die is gebaseerd op wat ze doen en veilig buiten de naamruimte van regels voor automatisch opnemen.

  • Als het een virtueel hostbestand is, geeft dit de naam .vhost als extensie.
  • Als het een rewrite-regelbestand is, geeft u dit bestand de naam <site>_rewrite.rules als achtervoegsel en extensie. Deze naamgevingsconventie maakt duidelijk voor welke site de conventie is bedoeld en of het een set herschrijfregels is.
  • Als het een IP-bestand met whitelist-regels betreft, geeft u dit bestand de naam <description>_whitelist.rules als achtervoegsel en extensie. Deze naamgevingsconventie geeft een beschrijving van wat het is en of het een set IP-overeenkomende regels is.

Als u deze naamgevingsconventies gebruikt, ontstaan er geen problemen als een bestand wordt verplaatst naar een map voor automatisch opnemen die er niet bij hoort.

Als u bijvoorbeeld een bestand met de naam .rules, .any of .vhost in de map auto-include van /etc/httpd/conf.d/ plaatst, heeft dat geen effect.

Als een verzoek van de plaatsingsverandering please deploy exampleco_rewrite.rules to production dispatchers zegt kan de persoon die de veranderingen opstelt reeds weten dat zij geen nieuwe plaats toevoegen; zij werken enkel herschrijven regels bij zoals vermeld door filename.

omvat Orde

Wanneer het uitbreiden van functionaliteit en configuraties in Apache Webserver die op Onderneming Linux wordt geïnstalleerd, hebt u sommige belangrijke orden omvatten u zult willen begrijpen.

A. inbegrepen Basislijn Apache

Het binaire bestand Apache begint met httpd.conf , dat een includeoptional naar de mappen conf.d/*.conf en conf.modules.d/*.conf uitvoert.

Zoals in het diagram boven het httpd binaire getal wordt getoond, zoekt het httpd.conf dossier slechts als het configuratiedossier. Dat bestand bevat de volgende instructies:

Include conf.modules.d/*.conf
IncludeOptional conf.d/*.conf

B. Hoogste Niveau van AMS omvat

Toen wij onze norm toepasten, voegden wij enkele extra dossiertypes en van onze toe.

Hier zijn de basislijnmappen van AMS en de bovenste include-bestanden op het niveau

Aan de hand van de basislijn van Apache laten we zien hoe AMS aanvullende mappen en include-bestanden op hoofdniveau heeft gemaakt voor conf.d -mappen en specifieke mappen die zijn genest onder /etc/httpd/conf.dispatcher.d/

Wanneer Apache wordt geladen, wordt het in /etc/httpd/conf.modules.d/02-dispatcher.conf geschoven en wordt het binaire bestand /etc/httpd/modules/mod_dispatcher.so in de actieve staat opgenomen.

LoadModule dispatcher_module modules/mod_dispatcher.so

Als u de module wilt gebruiken in onze </VirtualHost> , zet u een configuratiebestand neer in /etc/httpd/conf.d/ named dispatcher_vhost.conf en in dit bestand ziet u hoe u de basisparameters die nodig zijn om de module te laten werken, instelt:

<IfModule disp_apache2.c>
DispatcherConfig conf.dispatcher.d /dispatcher .any
...SNIP...
</IfModule>

Zoals u hierboven kunt zien, bevat dit ook de dispatcher op hoofdniveau. Elk bestand dat in onze Dispatcher-module wordt gebruikt om de configuratiebestanden van de module op te halen uit /etc/httpd/conf.dispatcher.d/dispatcher.any

Let op de inhoud van dit bestand:

/farms {
 $include "enabled_farms/*_farm.any"
}

Dispatcher.any-bestanden op hoofdniveau bevatten alle ingeschakelde landbouwhuisbestanden die in /etc/httpd/conf.dispatcher.d/enabled_farms/ met de bestandsnaam <FILENAME>_farm.any leven, die onze standaardnaamgevingsconventie volgt.

Later in het eerder vermelde dispatcher_vhost.conf bestand voeren we ook een include-instructie uit om elk ingeschakeld virtueel hostbestand in te schakelen dat in /etc/httpd/conf.d/enabled_vhosts/ met de bestandsnaam van <FILENAME>.vhost woont. Deze instructie volgt de standaardnaamgevingsconventie.

IncludeOptional /etc/httpd/conf.d/enabled_vhosts/*.vhost

In elk van onze .vhost-bestanden ziet u dat de verzendermodule is geïnitialiseerd als een standaardbestandshandler voor een map. Hier volgt een voorbeeld van een .vhost-bestand met de syntaxis:

<VirtualHost *:80>
 ServerName "weretail"
 ServerAlias www.weretail.com weretail.com
 <Directory />
 <IfModule disp_apache2.c>
 ....SNIP....
 SetHandler dispatcher-handler
 </IfModule>
 ....SNIP....
 </Directory>
 ....SNIP....
</VirtualHost>

Nadat het hoogste niveau omvat oplossen hebben zij andere sub omvat die het vermelden waard zijn. Hier is een diagram op hoog niveau op hoe de landbouwbedrijven en de gastheren dossiers andere subelementen omvatten

C. de Virtuele Gastheer van AMS omvat

Wanneer .vhost-bestanden uit de map /etc/httpd/conf.d/availabled_vhosts/ worden gesymkoppeld in de map /etc/httpd/conf.d/enabled_vhosts/ , worden deze gebruikt in de actieve configuratie.

De .vhost-bestanden hebben subinclude-bestanden op basis van gemeenschappelijke items die we hebben gevonden. Dingen als variabelen, whitelisten en herschrijven van regels.

Het .vhost-bestand bevat instructies voor elk bestand op basis van de locatie waar deze in het .vhost-bestand moeten worden opgenomen. Hier volgt een voorbeeld van een syntaxis van een .vhost-bestand als een goede referentie:

Include /etc/httpd/conf .d /variables/weretail .vars VirtualHost *:80
ServerName "${MAIN_DOMAIN}"
Directory / Include /etc/httpd/conf .d /whitelists/weretail *_whitelist.rules
IfModule disp_apache2.c
....SNIP....
SetHandler dispatcher-handler
/IfModule
....SNIP....
/Directory
....SNIP....
IfModule mod_rewrite.c
ReWriteEngine on
LogLevel warn rewrite:trace1
Include /etc/httpd/conf .d /rewrites/weretail_rewrite .rules
/IfModule /VirtualHost

Zoals u in het bovenstaande voorbeeld kunt zien, is er een include-bestand voor de variabelen die nodig zijn in dit configuratiebestand die later worden gebruikt.

In het bestand /etc/httpd/conf.d/variables/weretail.vars kunnen we zien welke variabelen zijn gedefinieerd:

Define MAIN_DOMAIN dev.weretail.com

U kunt ook een regel zien die een lijst bevat met whitelist.rules-bestanden die bepalen wie deze inhoud kan bekijken op basis van verschillende whitelistcriteria. Hiermee kunt u de inhoud van een van de bestanden in de witte lijst bekijken /etc/httpd/conf.d/whitelists/weretail_mainoffice_whitelist.rules :

<RequireAny>
 Require ip 192.150.16.0/23
</RequireAny>

U kunt ook een regel zien die een set herschrijfregels bevat. Bekijk de inhoud van het bestand weretail_rewrite.rules :

RewriteRule /robots.txt$ /content/dam/weretail/robots.txt [ NC,PT]
RewriteCond %{SERVER_NAME} brand1.weretail.net [ NC]
RewriteRule /favicon.ico$ /content/dam/weretail/favicon.ico [ NC,PT]
RewriteCond %{SERVER_NAME} brand2.weretail.com [ NC]
RewriteRule /sitemap.xml$ /content/weretail/general/sitemap.xml [ NC,PT]
RewriteRule /logo.jpg$ /content/dam/weretail/general/logo.jpg [ NC,PT]

D. het Farm van AMS omvat

Wanneer een <FILENAME>_farm.any -bestand uit de map /etc/httpd/conf.dispatcher.d/available_farms/ wordt gesymboliseerd in de map /etc/httpd/conf.dispatcher.d/enabled_farms/ , wordt het gebruikt in de actieve configuratie.

De landbouwbedrijfdossiers hebben sub omvat gebaseerd op hoogste niveausecties van het landbouwbedrijfals geheime voorgeheugen, klantheaders, filters, teruggeeft, en gastheren.

De <FILENAME>_farm.any -bestanden bevatten instructies voor elk bestand op basis van de locatie waar de bestanden in het landbouwbedrijfsbestand moeten worden opgenomen. Hier volgt een voorbeeld van de syntaxis van een <FILENAME>_farm.any -bestand als een goede referentie:

/weretailfarm {
 /clientheaders {
 $include "/etc/httpd/conf.dispatcher.d/clientheaders/ams_publish_clientheaders.any"
 $include "/etc/httpd/conf.dispatcher.d/clientheaders/ams_common_clientheaders.any"
 }
 /virtualhosts {
 $include "/etc/httpd/conf.dispatcher.d/vhosts/weretail_vhosts.any"
 }
 /renders {
 $include "/etc/httpd/conf.dispatcher.d/renders/ams_publish_renders.any"
 }
 /filter {
 $include "/etc/httpd/conf.dispatcher.d/filters/ams_publish_filters.any"
 $include "/etc/httpd/conf.dispatcher.d/filters/weretail_search_filters.any"
 }
 ....SNIP....
 /cache {
 ....SNIP....
 /rules {
 $include "/etc/httpd/conf.dispatcher.d/cache/ams_publish_cache.any"
 }
 ....SNIP....
 /allowedClients {
 /0000 {
 /glob "*.*.*.*"
 /type "deny"
 }
 $include "/etc/httpd/conf.dispatcher.d/cache/ams_publish_invalidate_allowed.any"
 }
 ....SNIP....
 }
}

Aangezien u elke sectie voor het weretail landbouwbedrijf in plaats van het hebben van alle syntaxis nodig kunt zien het in plaats daarvan het gebruiken omvat verklaring.

Bekijk de syntaxis van een aantal van deze voorbeelden om te zien hoe elke subinclude eruit zou zien /etc/httpd/conf.dispatcher.d/vhosts/weretail_publish_vhosts.any :

"brand1.weretail.com"
"brand2.weretail.com"
"www.weretail.comf"

Aangezien u kunt zien is het een nieuwe lijn gescheiden lijst van domeinnamen die van dit landbouwbedrijf over anderen zou moeten teruggeven.

Kijk nu naar de /etc/httpd/conf.dispatcher.d/filters/weretail_search_filters.any :

/400 { /type "allow" /method "GET" /path "/bin/weretail/lists/*" /extension "json" }
/401 { /type "allow" /method "POST" /path "/bin/weretail/search/" /extension "html" }
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f