Proxy Nginx ou de réécrire en fonction de l'agent utilisateur
je suis nouveau sur nginx, venant de apache et en gros, je veux faire ce qui suit:
Basé sur user-agent:
iPhone: rediriger vers iphone.mydomain.com
android: rediriger vers android.mydomain.com
facebook: reverse proxy otherdomain.com
tous les autres: rediriger vers ...
et il a essayé de la façon suivante:
location /tvoice {
if ($http_user_agent ~ iPhone ) {
rewrite ^(.*) https://m.domain1.com$1 permanent;
}
...
if ($http_user_agent ~ facebookexternalhit) {
proxy_pass http://mydomain.com/api;
}
rewrite /tvoice/(.*) http://mydomain.com/#!tvoice/$1 permanent;
}
Mais maintenant j'ai une erreur lors du démarrage de nginx:
nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except"
Et je n'obtiens pas comment le faire ou quel est le problème.
Grâce
OriginalL'auteur user984200 | 2012-05-16
Vous devez vous connecter pour publier un commentaire.
'/Api " une partie de la proxy_pass cible est l'URI de la partie le message d'erreur fait référence. Depuis les fi sont des pseudo-lieux, et proxy_pass avec une uri partie remplace le contenu de l'emplacement d'uri, il n'est pas permis dans un si. Si vous venez juste d'inverser que si la logique, vous pouvez obtenir que cela fonctionne:
OriginalL'auteur kolbyjack