博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx多虚拟主机优先级location匹配规则及tryfiles的使用
阅读量:6686 次
发布时间:2019-06-25

本文共 3592 字,大约阅读时间需要 11 分钟。

nginx多虚拟主机优先级location匹配规则及tryfiles的使用1.相同server_name多个虚拟主机优先级访问2.location匹配优先级3.try_files使用4.nginx的alias和root区别5.用什么方法传递用户的真实IP1.相同server_name多个虚拟主机优先级访问环境准备[root@test8_hadoop_kaf conf.d]# cat server01.conf server {    listen 80;    server_name server01 es.chinasoft.com;        location / {        root /opt/app/code1;        index index.html index.htm;    }    error_page 500 502 503 504 404 /50x.html;    location = /50x.html {        root /usr/share/nginx/html;    }}[root@test8_hadoop_kaf conf.d]# cat server02.conf server {    listen 80;    server_name server02 es.chinasoft.com;        location / {        root /opt/app/code2;        index index.html index.htm;    }    error_page 500 502 503 504 404 /50x.html;    location = /50x.html {        root /usr/share/nginx/html;    }}[root@test8_hadoop_kaf conf.d]# diff server01.conf server02.conf 3c3<     server_name server01 es.chinasoft.com;--->     server_name server02 es.chinasoft.com;6c6<         root /opt/app/code1;--->         root /opt/app/code2;[root@test8_hadoop_kaf conf.d]# cat /opt/app/code1/index.html 

server01

[root@test8_hadoop_kaf conf.d]# cat /opt/app/code2/index.html

server02

测试[root@test8_hadoop_kaf conf.d]# curl http://es.chinasoft.com/index.html

server01

修改配置文件,重新加载nginx,再次测试发现访问server02了[root@test8_hadoop_kaf conf.d]# mv server01.conf server03.conf[root@test8_hadoop_kaf conf.d]# systemctl reload nginx[root@test8_hadoop_kaf conf.d]# curl http://es.chinasoft.com/index.html

server02

2.location匹配优先级= 进行普通字符精确匹配,也就是完全匹配^~ 表示普通字符匹配,使用前缀匹配~ \~* 表示执行一个正则匹配()环境准备:nginx的配置[root@test8_hadoop_kaf conf.d]# cat location_test.conf server { listen 80; server_name testserver01 es.chinasoft.com; root /opt/app; location = /code1/ { rewrite ^(.*)$ /code1/index.html break; } location ~ /code.* { rewrite ^(.*)$ /code3/index.html break; } location ^~ /code { rewrite ^(.*)$ /code2/index.html break; }}代码:[root@test8_hadoop_kaf conf.d]# mkdir /opt/app/{code1,code2,code3}[root@test8_hadoop_kaf conf.d]# echo "

code1

" >> /opt/app/code1/index.html[root@test8_hadoop_kaf conf.d]# echo "

code2

" >> /opt/app/code2/index.html[root@test8_hadoop_kaf conf.d]# echo "

code3

" >> /opt/app/code3/index.html测试:[root@test8_hadoop_kaf conf.d]# curl http://es.chinasoft.com/code1/

server01

code1

注释掉code1部分#location = /code1/ { # rewrite ^(.*)$ /code1/index.html break; #}重新加载nginx,测试发现就匹配到了code2中[root@test8_hadoop_kaf conf.d]# systemctl reload nginx[root@test8_hadoop_kaf conf.d]# curl http://es.chinasoft.com/code1/

server02

code2

3.nginx中try_files的使用环境准备:nginx的配置[root@test8_hadoop_kaf conf.d]# cat tryfiles_test.conf server { listen 80; server_name testserver01 es.chinasoft.com; root /opt/app; location / { root /opt/app/code/cache; try_files $uri @java_page; } location @java_page { proxy_pass http://127.0.0.1:9090; }}/opt/app/code/cache/目录下的html页面[root@test8_hadoop_kaf conf.d]# cat /opt/app/code/cache/jack.htmlcachetomcat下的html页面[root@test8_hadoop_kaf conf.d]# cat /data/yunva/test_tomcat8.0.37_9090/webapps/ROOT/jack.html
server 1

java page

测试:[root@test8_hadoop_kaf cache]# curl http://es.chinasoft.com/jack.htmlcache将/opt/app/code/cache目录下的html页面重命名,模拟页面不存在,可以看到再次访问就到了@java_page[root@test8_hadoop_kaf cache]# pwd/opt/app/code/cache[root@test8_hadoop_kaf cache]# mv jack.html jack.html.bak[root@test8_hadoop_kaf cache]# curl http://es.chinasoft.com/jack.html
server 1

java page

4.nginx的alias和root区别Root会做拼接路径处理,alias就不拼接,而是直接访问alias目录下的文件

转载于:https://www.cnblogs.com/reblue520/p/8304992.html

你可能感兴趣的文章
Tetris in javascript[俄罗斯方块]
查看>>
[转载]日历设计之重复事件规则设计
查看>>
HTTP协议详解(真的很经典)
查看>>
(转)什么是云计算
查看>>
Linux性能监控命令——sar
查看>>
使用Asp.net mvc + Linq + mvc_scaffold_gen_setup.exe 生成一个完整的家庭帐册大管家程序 之二...
查看>>
视差滚动(Parallax Scrolling)效果的原理和实现
查看>>
带监督的文本分类算法FastText
查看>>
新书推荐:细说PHP(含样章试读)
查看>>
《黑客防线》2010合订本(下半年)
查看>>
intel I7平台Win7 x64 下wpf、silverlight 与aero特效动画缓慢故障排除一则
查看>>
shell常识总结
查看>>
内存池版本1--单线程-固定大小专为某类设计的内存池
查看>>
大道至简,职场上做人做事做管理
查看>>
《C++必知必会》读书笔记2
查看>>
web 学习资源整理
查看>>
make 参数定义
查看>>
java从字符串中提取数字
查看>>
Android深入浅出系列之服务机制—1.Android中的Service
查看>>
zz:彻底解决兼容性问题:Windows 7下载安装 Visual C++ 6.0(VC6)
查看>>