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.