1CLICK pod proxy Apache
Tento návod je určený pro experty, zejména správce webových serverů Apache.
1CLICK je možné "schovat" pod webový server Apache. Klienti v takovém scénáří komunikují s webovým serverem Apache, který (vybrané) požadavky dále předává serveru 1CLICK.
Výhody tohoto zapojení jsou zejména:
- můžete využít obrovského rozsahu funkcí serveru Apache, např. v oblastech pokročilého zabezpečení
- můžete 1CLICK integrovat přímo do struktury webových stránek, např. vašeho intranetu
Zapojení 1CLICK pod Apachem používáme například i v aplikačním hostingu 1c2c.cz.
Nastavení
Na straně 1CLICK není pro tento scénář potřeba žádné speciální nastavení.
Na straně Apache se řešení opírá o modul mod_proxy. Klíčovými nastaveními jsou direktivy Proxy, ProxyPass a ProxyPassReverse, které definují, že požadavky na určité URI adresy budou předávané serveru 1CLICK a kde tento server běží. Dále je potřeba použít direktivu AllowEncodedSlashes, bez které by předávání požadavků v některých případech nefungovalo správně.
Níže uvedené příklady předpokládají, že jsou v serveru Apache nainstalované a aktivované moduly mod_proxy a mod_proxy_http.
POZOR: Nastavení funguje v Apache verzi 2.2.8 a vyšší. Starší verze Apache nepodporují přepínač "nocanon", který je pro správné předávání požadavků do 1CLICK nezbytný.
Příklad jednoduchého nastavení, které předává požadavky na všechny URI adresy serveru 1CLICK:
<VirtualHost *:80>
<Proxy *>
Order Deny,Allow
Allow from All
/Proxy>
AllowEncodedSlashes On
ProxyPass / http://localhost:7169/ nocanon
ProxyPassReverse / http://localhost:7169/
</VirtualHost>Příklad, kdy Apache standardně poskytuje běžný obsah a serveru 1CLICK předává jen požadavky na URI začínající /1click:
<VirtualHost *:80>
# V tomto adresari jsou vase webove stranky ...
DocumentRoot /var/www
# A nasledujici nastaveni "namapuje" 1CLICK do cesty /1click
<Proxy *>
Order Deny,Allow
Allow from All
</Proxy>
AllowEncodedSlashes On
Redirect /1click /1click/
ProxyPass /1click/ http://localhost:7169/ nocanon
ProxyPassReverse /1click/ http://localhost:7169/
</VirtualHost>V nastavení nepoužívejte direktivu ProxyPreserveHost.