当前位置: 首页 > news >正文

珠海网站建设优化推广seo在线优化工具 si

珠海网站建设优化推广,seo在线优化工具 si,淘宝网站做多久,赣州章贡区最新招聘信息转载:http://www.eryajf.net/3103.html 2020博客地址汇总2019年博客汇总 最新了解到的姿势,结合着新接触Mac电脑,第一次做实验,学习之后,特别记录一下。 1,说明。 很多时候,测试环境可能会有…

转载:http://www.eryajf.net/3103.html

  • 2020博客地址汇总
  • 2019年博客汇总

最新了解到的姿势,结合着新接触Mac电脑,第一次做实验,学习之后,特别记录一下。

1,说明。

很多时候,测试环境可能会有好多套环境,这个时候,如果每套都配置一个对应的域名,会非常麻烦,但是很多时候针对这个问题似乎又没有特别好的方案,新公司新气象,学到新的思路是在NGINX层面基于cookie来进行不同环境的分流转发,今天就来做一下这个实验。

2,环境准备。

因为在新环境,还没有个人自用的测试服务器,Mac当中做实验又不习惯,于是只能通过docker来进行了。

所以需要先安装docker环境,这个就不在这里赘述了。

那么,docker环境准备完毕之后,就可以开始实验了,所谓,docker在手,天下我有。

 

3,思路说明。

首先跑两个NGINX的容器,访问之后会返回不同的结果,然后前端再添加一层NGINX,代理所有的外部请求,根据cookie的不同,分发到不同的后端容器去。

4,开始操作。

1,先启两个后端容器。

准备工作:

$ mkdir -p /Users/liqilong/docker/nginx
$ cd /Users/liqilong/docker/nginx
$ mkdir  test1 test2
$ echo test1 > test1/index.html
$ echo test2 > test2/index.html

启动容器:

$ docker pull daocloud.io/library/nginx:1.15.9-alpine-perl
$ docker run --name test1 -v /Users/liqilong/docker/nginx/test1:/usr/share/nginx/html:ro -d -p 8080:80  daocloud.io/library/nginx:1.15.9-alpine-perl
$ docker run --name test2 -v /Users/liqilong/docker/nginx/test2:/usr/share/nginx/html:ro -d -p 8081:80  daocloud.io/library/nginx:1.15.9-alpine-perl

访问验证:

$ ifconfig en0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500ether 18:65:90:cc:52:a5inet6 fe80::1cf4:9734:2fa8:8234%en0 prefixlen 64 secured scopeid 0x5inet 172.16.29.170 netmask 0xfffffc00 broadcast 172.16.31.255nd6 options=201<PERFORMNUD,DAD>media: autoselectstatus: active
$ curl 172.16.29.170:8080
test1
$ curl 172.16.29.170:8081
test2

2,再启动一个前端NGINX。

因为要做一些相对的配置工作,我这里就用了自己配置的centos镜像来做了,事实上仍旧可以利用刚刚那个NGINX镜像来做接下来的实验。

$ docker pull registry.cn-hangzhou.aliyuncs.com/eryajf/centos:7.4
$ docker run -itd --name eryajf registry.cn-hangzhou.aliyuncs.com/eryajf/centos:7.4

接下来的操作就是进入此容器内部进行了。

$ docker exec -it eryajf sh
sh-4.2# yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
sh-4.2# yum -y install nginx

添加如下NGINX配置:

cat >> /etc/nginx/conf.d/test.conf << EOF
upstream test01 {       #此处可以单独写,也可以写在下边map的内容中server 172.16.29.170:8080 weight=1 max_fails=1 fail_timeout=30s;
}
upstream test02 {server 172.16.29.170:8081 weight=1 max_fails=1 fail_timeout=30s;
}
upstream root {server 172.16.29.170:8080 weight=1 max_fails=1 fail_timeout=30s;
}
map $COOKIE_testenv $group {    #$COOKIE_testenv的前半部分$COOKIE_是固定格式,后边的testenv则是cookie的key,$group是别名test1 test01;   #表示cookie的value=test1,则转发给test1test2 test02;default root;
}
server {listen 81;server_name localhost;access_log  logs/access_log;error_log   logs/error_log;location / {proxy_pass http://$group$request_uri;   #注意此处url的拼接proxy_set_header X-Forwarded-For $remote_addr;}
}
EOF

然后启动NGINX:

nginx -t
nginx

3,访问测试。

这个时候可以通过命令行来模拟请求,然后查看效果。

sh-4.2# curl localhost:81
test1
sh-4.2# curl localhost:81 --cookie "testenv=test1"
test1
sh-4.2# curl localhost:81 --cookie "testenv=test2"
test2

此处只要是有一个cookie名称与内容是符合nginx定义的规则的,那么如上规则就是成立的。

sh-4.2# curl localhost:81 --cookie "testenv=test1;user=root;pass=123"
test1
sh-4.2# curl localhost:81 --cookie "testenv=test2;user=root;pass=123"
test2

 

5,其他方面。

另外除了上边的比较固定的方式之外,还有比较灵活的控制方案,主要集中在url的匹配上。

1,匹配结尾关键字。

需求就是匹配到cookie的指定结尾进行分流转发。NGINX配置如下:

map $COOKIE_testenv $group {~*1$  172.16.29.170:8080;~*2$  172.16.29.170:8081;default 172.16.29.170:8080;
}
server {listen 81;server_name localhost;access_log  logs/access_log;error_log   logs/error_log;location / {proxy_pass http://$group$request_uri;proxy_set_header X-Forwarded-For $remote_addr;}
}

然后重新加载NGINX配置,请求一下验证效果:

sh-4.2# curl localhost:81 --cookie "testenv=dfhg;user=root;pass=123"
test1
sh-4.2# curl localhost:81 --cookie "testenv=dfhg1;user=root;pass=123"
test1
sh-4.2# curl localhost:81 --cookie "testenv=dfhg2;user=root;pass=123"
test2

2,匹配开头关键字。

与上边的道理是一致的,只不过配置内容更改一下即可。

map $COOKIE_testenv $group {~*^1  172.16.29.170:8080;~*^2  172.16.29.170:8081;default 172.16.29.170:8080;
}
server {listen 81;server_name localhost;access_log  logs/access_log;error_log   logs/error_log;location / {proxy_pass http://$group$request_uri;proxy_set_header X-Forwarded-For $remote_addr;}
}

然后请求一下,验证一下效果:

sh-4.2# curl localhost:81 --cookie "testenv=dfhg;user=root;pass=123"
test1
sh-4.2# curl localhost:81 --cookie "testenv=1dfhg;user=root;pass=123"
test1
sh-4.2# curl localhost:81 --cookie "testenv=2dfhg;user=root;pass=123"
test2

3,匹配包含关键字。

还有一种比较灵活的策略,就是只要包含指定的关键字标识,就往不同的后端进行分流转发,配置如下:

map $COOKIE_testenv $group {~*.*eryajf1.*  172.16.29.170:8080;~*.*eryajf2.*  172.16.29.170:8081;default 172.16.29.170:8080;
}
server {listen 81;server_name localhost;access_log  logs/access_log;error_log   logs/error_log;location / {proxy_pass http://$group$request_uri;proxy_set_header X-Forwarded-For $remote_addr;}
}

然后请求一下,验证一下效果:

sh-4.2# curl localhost:81 --cookie "testenv=A3fklj;user=root;pass=123"
test1
sh-4.2# curl localhost:81 --cookie "testenv=A3fkeryajf1lj;user=root;pass=123"
test1
sh-4.2# curl localhost:81 --cookie "testenv=A3fkeryajf2lj;user=root;pass=123"
test2
http://www.lbrq.cn/news/2731537.html

相关文章:

  • 怎么管理网站的内容我要发布信息
  • 商业网站开发设计报告seo优化范畴
  • 知名网站都是什么系统做的武汉网络推广平台
  • 域名备案关闭网站最新提升关键词排名软件
  • 网站免费正能量直接进入app阿里指数查询官网
  • 江门网站设计华企立方成都电脑培训班零基础
  • p2p电影网站开发百度指数可以查询到哪些内容
  • 企业网站的建设厦门谷歌seo
  • 网站怎么做数据备份青岛疫情最新情况
  • 网站建设公司一般多少钱关键词投放
  • 网站建设费用模板竞价推广代运营企业
  • 韩国ps教程网站电脑培训班
  • 网站建设知识沧州网站seo
  • 邢台做移动网站的公司真正免费的网站建站平
  • 什么是做自己的网站it培训机构推荐
  • 乐清网站网站建设口碑营销公司
  • 云南省建设项目申报网站上海百度移动关键词排名优化
  • logo网站设计素材网站推广优化平台
  • 专注于响应式网站开发seo哪个软件好
  • 猪八戒做网站要多少钱万能识图
  • 国外网站做调查自媒体平台大全
  • 企业简介的网站怎么做最新军事新闻事件今天
  • 国家重点项目建设部网站今日十大热点新闻
  • 建设一个网站成本多少钱如何在百度发布广告
  • python做互金网站抖音搜索引擎推广
  • 建立个人博客网站付费推广有几种方式
  • 北京冬奥会吉祥物设计制作班级优化大师电脑版
  • 南京建设网站企业武汉seo网站排名优化公司
  • 网站栏目设计规划表百度风云榜热搜
  • 物流网站制作怎么做营销策划咨询
  • 同创物流学习记录2·电车
  • 美国服务器环境下Windows容器工作负载基于指标的自动扩缩
  • 【数据分享】上市公司供应链成本分摊数据(2007-2024)
  • 使用openssl创建自签名CA并用它签发服务器证书
  • Lecture 10: Concurrency 3
  • JAVA文件管理系统:如何玩转文件操作