我在Nginx上检查Cookie的资源有限,但是我并没有真正找到想要的答案,希望你们中的一些Nginx大师可以帮助我。

本质上,除非用户具有cookie,否则我想将虚拟主机重定向到其他域,这是我创建的:

server {
  listen 80;
  server_name example.com;

  if ($http_cookie ~* "dev_cookie" ) {
    root /home/deploy/apps/example/current/public;
    passenger_enabled on;
    rack_env production;
    break;
  }
  rewrite ^/(.*) http://beta.example.com/$1 permanent;
}

但这似乎不起作用,我得到了错误:
[emerg]: "root" directive is not allowed here in /opt/nginx/conf/nginx.conf:45

我不确定如何进行此处,有什么想法吗?

最佳答案

这就说得通了。
我将用另一个不同的根文件夹定义另一个虚拟主机(beta.example.com)
并在遇到Cookie时-进行重写

您不能有条件地为一个域设置不同的根,但可以有条件地重定向(重写)到另一个域

这个家伙的例子对我有帮助
http://nicknotfound.com/2009/01/12/iphone-website-with-nginx/

10-08 02:02