关于 Nginx 配置的一些疑惑, Nginx 根据cookie 进行rewrite
网站目录结构如下:
/public/en.html
/public/zh_cn.html
/public/index.php
之前所有的非静态资源请求都交给 index.php
现在要把首页的请求 不走PHP了,提高下网站性能。Nginx会根据cookie值 lang=en 直接返回en.html 根据 lang=zh_cn 直接返回 zh_cn.html。如果没有cookie的话,默认返回 zh_cn.html.
首页请求地址有3个,分别为: 
/ 
/index
/index/index 
求Nginx 配置。
现在的Ngxin配置如下:
location / {
    index  index.php;
    if ($http_cookie ~* "lang=en"){
        rewrite ^/$ /en.html;
        rewrite /index /en.html;
        rewrite /index/index /en.html;
    }
    if ($http_cookie ~* "lang=zh_cn"){
        rewrite ^/$ /zh_cn.html;
        rewrite /index /zh_cn.html;
        rewrite /index/index /zh_cn.html;
    }   
    root    /www/wwwroot/public;
    try_files $uri $uri/ /index.php?q=$uri&$args;
}
但是不好使啊,网上说 location里,if 和 try_files同时使用会有问题,http://wiki.nginx.org/IfIsEvil
搞了一天了,还是没整好,好郁闷。感觉到了瓶颈了。
https://www.oschina.net/question/186778_226741
关于 Nginx 配置的一些疑惑, Nginx 根据cookie 进行rewrite的更多相关文章
- Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"
		Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl" 出现如图所示错误,处理办法如下 去nginx解压目录下执行 ./co ... 
- nginx配置ssl双向验证 nginx https ssl证书配置
		1.安装nginx 参考<nginx安装>:http://www.ttlsa.com/nginx/nginx-install-on-linux/ 如果你想在单IP/服务器上配置多个http ... 
- 通过http、https域名访问静态网页、nginx配置负载均衡(nginx配置)
		很多场景下需要可以通过浏览器访问静态网页,不想把服务器ip地址直接暴露出来,通过nginx可以解决这个问题. 实现http域名访问静态网页 1.域名解析配置(本文都是以阿里云为例,其他平台,操作步骤类 ... 
- nginx配置1:借助Nginx搭建反向代理服务器与缓存静态文件
		修改配置文件nginx.conf (1)进程数与每个进程的最大连接数: •nginx进程数,建议设置为等于CPU总核心数 •单个进程最大连接数,那么该服务器的最大连接数=连接数*进程数 (2)Ngin ... 
- Nginx 配置日志路径(nginx.conf没有写log路径,所以debug的时候找不到日志)
		缘由:nginx.conf没有写log路径,所以debug的时候找不到日志,遂在conf文件里写入了log路径 Setp1.nginx默认日志路径: /var/log/nginx Setp2.conf ... 
- nginx配置tomcat负载均衡,nginx.conf配置文件的配置
- Nginx配置(需要把nginx的根目录指向ftp上传文件的目录。)
		改成 
- nginx配置入门
		谢谢作者的分享精神,原文地址:http://www.nginx.cn/591.html nginx配置入门 之前的nginx配置是对nginx配置文件的具体含义进行讲解,不过对于nginx的新手可能一 ... 
- nginx配置学习文章
		partOne 自我释义部分 我的是阿里云的ubuntu *******实际上感觉这里是基本配置,很用不到*********#定义其用户或用户组user www-data;#nginx的进程数,应当为 ... 
随机推荐
- [转帖]Linux日志文件utmp、wtmp、lastlog、messages
			Linux日志文件utmp.wtmp.lastlog.messages https://www.cnblogs.com/zhuiluoyu/p/6874255.html 1.有关当前登录用户的信息记录 ... 
- day60——单表操作补充(批量插入、查询、表结构)
			day60 批量插入(bulk_create) # bulk_create obj_list = [] for i in range(20): obj = models.Book( title=f'金 ... 
- PowerBI开发 第四篇:DAX 表达式基础
			DAX 表达式主要用于创建度量列(Measure),度量值是根据用户选择的Filter和公式,计算聚合值,DAX表达式基本上都是引用对应的函数,函数的执行有表级(Table-Level)上下文和行级( ... 
- 动态代理(一)——JDK中的动态代理
			在开始动态代理的描述之前,让我们认识下代理.代理:即代替担任执行职务.在面向对象世界中,即寻找另一个对象代理目标对象与调用者交互.Java中分为静态代理和动态代理.这里对于静态代理不做详述.它们之间的 ... 
- 关于redis key命名规范的设计
			一.实现目标 简洁,高效,可维护 二.键值设计规约 1 . Redis key命名风格 [推荐]Redis key命名需具有可读性以及可管理性,不该使用含义不清的key以及特别长的key名: [强制] ... 
- Lombok简介、使用、工作原理、优缺点
			1.Lombok简介官方介绍 Project Lombok is a java library that automatically plugs into your editor and build ... 
- .net代码混淆
			本人主要记录一下学习心得,.net关于代码混淆的知识 1.代码混淆的原理,转载链接 2.代码混淆工具,ConfuserEx的使用,转载地址 
- 在python当中使用redis
			redis数据库 # 1.安装redis与可视化操作工具 # 2.在服务中管理redis服务器的开启关闭 # 3.命令行简单使用redis: -- redis-cli # 启动客户端 -- set k ... 
- 记一次Spring boot集成mybatis错误修复过程  Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
			最近自己写了一份代码签入到github,然后拉下来运行报下面的错误 Error starting ApplicationContext. To display the conditions repor ... 
- S5PV210 固件烧写 u-boot烧写
			首先阅读CW210_CD自带光盘中CW210 开发板使用手册.pdf 使用usb 拨码开关置成usb启动.xx可以是ON或OFF.开发板上面也有丝印提示 usb线接好,串口线接好 使用DNW下载 自带 ... 
