nginx location rewrite _vh_

come utilizzare la proprietà _vh_ del Virtual Host Monster di Zope nella rewrite-rule di nginx, al di là di quella calssica:

location / {
    rewrite ^/(.*)  /VirtualHostBase/http/$server_name:80/my_plone_site/VirtualHostRoot/$1 break;
    proxy_pass http://127.0.0.1:8080;
}

 

con la rewrite classica, per esempio, il dominio my_domain.com viene indirizzato sul sito plone my_plone_site

 

se per una qualsiasi ragione voglio raggiungere il sito plone utilizzando un percorso dell'URL, che non rispecchia un percorso plone reale, si può utilizzare la proprietà _vh_ del Virtual Host Monster di Zope:

... /my_plone_site/VirtualHostRoot/_vh_whatever/1$

whatever viene aggiunto all'URL, ma non è parte del percorso plone (non viene 'attraversato')

 

se in più, la radice del dominio (/) punta a qualcos'altro (un altro sito plone, cgi ...) e quindi in nginx devo utilizzare una differente location /whatever, per raggiungere il sito plone con un URL del tipo http://my_domain.com/wathever/ va utilizzata la seguente rewrite-rule:

location ^~ /whatever {
    rewrite ^/whatever/(.*)  /VirtualHostBase/http/$server_name:80/my_plone_site/VirtualHostRoot/_vh_whatever/$1 break;
    proxy_pass http://127.0.0.1:8080;
}

poichè la location viene aggiunta da nginx al percorso plone (1$), da non confondere con il whatever di _vh_, questa deve essere catturata all'inizio della rewrite (^/whatever/(.*))

 

Share this on

Share |

On same topics

Commenti

comments powered by Disqus