2017-03-16 2 views
0

J'ai un serveur principal exécutant NGINX et un second serveur exécutant Apache/cPanel.NGINX Proxy Pass

Ce que nous essayons de faire est de garder nos micro-sites séparés du serveur principal. Les micro-sites sont principalement Wordpress

Le problème que je rencontre est que nous voulons qu'ils aient le format de domaine http://example.com/path. Cependant

il est venu à mon attention que l'utilisation de ce qui suit proxy_pass ci-dessous ne fonctionne pas pour plus d'un site.

Il m'a été recommandé aussi que les microsites se transformer en sous-domaines sur le second serveur pour faciliter la proxy_pass confusion - path.example.com

Je lance alors dans la question de savoir comment puis-je obtenir http://example.com/path en miroir path.example.com et le travail comme http://example.com/path

Actuellement, il fonctionne en utilisant des semi le ci-dessous cependant /private charges juste /blog

Config:

location /blog/ { 
    include proxy-pass-settings.conf; 
    proxy_pass http://blogging.example.com/; 
} 

location /private/ { 
    include proxy-pass-settings.conf; 
    proxy_pass http://blogging.example.com/; 

Proxy Config:

proxy_http_version 1.1; 
proxy_set_header Upgrade $http_upgrade; 
proxy_set_header Connection 'upgrade'; 
proxy_set_header X-Forwarded-For $remote_addr; 
proxy_set_header Host $http_host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; 
proxy_set_header X-Forward-Proto http; 
proxy_set_header X-Nginx-Proxy true; 
proxy_redirect off; 
+0

S'il vous plaît inclure 'proxy passe-settings.conf'. –

+0

@TanHongTat Done :) –

+0

Quel est le vrai chemin pour '/ blog /' et '/ private /' sur 'http: // blogging.example.com /'? Est-ce 'http: // blogging.example.com/blog /' et 'http: // blogging.example.com/private /'? –

Répondre

0

Essayez ceci:

location ^~ /blog/ { 
    include proxy-pass-settings.conf; 
    proxy_pass http://blogging.example.com; 
} 

location ^~ /private/ { 
    include proxy-pass-settings.conf; 
    proxy_pass http://blogging.example.com; 
} 

Si proxy_pass est spécifié sans URI, l'URI de la requête est transmise au serveur dans la même forme que celle envoyée par un client lors du traitement de la demande d'origine ou lorsque l'URI de la requête normalisée complète est transmise l'UR modifié.

Source: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass