如何利用Nginx_geo模块实现CDN调度
发布时间 - 2023-05-30 00:00:00 点击率:次引入nginx的geo模块
geo指令使用ngx_http_geo_module模块提供的。默认情况下,nginx有加载这个模块除非人为的 --without-http_geo_module。
ngx_http_geo_module模块可以用来创建变量,其值依赖于客户端ip地址。使用方法如下:
geo指令
语法: geo [$address] $variable { ... }
默认值: —
配置段: http定义从指定的变量获取客户端的ip地址。默认情况下,nginx从$remote_addr变量取得客户端ip地址,但也可以从其他变量获得。
在/usr/local/nginx/conf/nginx.conf文件内加入以下配置
geo $geo {
ranges; #使用以地址段的形式定义地址,这个参数必须放在首位
default dn;
include ip_geo.conf;
}
upstream wuhan.server {
server 192.168.155.98:8081;
}
upstream shanghai.server {
server 192.168.155.98:8082;
}
upstream shenzhen.server {
server 192.168.155.98:8083;
}
upstream dn.server {
server 192.168.155.98:8084;
}
server {
listen 80;
server_name 192.168.155.98 jiaoyu.media.cloudp.cc;
root html;
index index.html index.htm;
location ~* \.xml$ {
root /data/video;
}
location / {
proxy_redirect off;
proxy_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for
$proxy_add_x_forwarded_for;
proxy_pass http://$geo.server$request_uri;
}
}
server {
listen 8081;
server_name 192.168.155.98;
location / {
rewrite ^ $scheme://192.168.1
55.106$request_uri? permanent;
}
}
server {
listen 8082;
server_name 192.168.155.98;
location / {
rewrite ^ $scheme://192.168.155.107$request_uri? permanent;
}
}
server {
listen 8083;
server_name 192.168.155.98;
location / {
rewrite ^ $scheme://192.168.155.109$request_uri? permanent;
}
}
server {
listen 8084;
server_name 192.168.155.98;
location / {
rewrite ^ $scheme://jiaoyu.dn.cloudp.cc$request_uri? permanent;
}
}在/usr/local/nginx/conf/文件下增加ip_geo.conf文件,用来对ip区域进行划分,注意划分的时候不能出现ip重叠现象,不然会出现”overlaps”报错
vim /usr/local/nginx/conf/ip_geo.conf 192.168.128.6-192.168.128.10 wuhan; 192.168.128.11-192.168.128.15 shanghai; 192.168.128.16-192.168.128.20 shenzhen;
也可以以10.2.0.0/16 wuhan;这种形式来进行ip分段,这样在nginx.conf中就不不需要使用range指令来进行定义
# nginx
# cdn
# 客户端
# 情况下
# 放在
# 但也
# 报错
# 首位
# 中就
# 可以用来
# 默认值
# 方法如下
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用西部建站助手快速创建专业网站?
敲碗10年!Mac系列传将迎来「触控与联网」双革新
如何用美橙互联一键搭建多站合一网站?
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
奇安信“盘古石”团队突破 iOS 26.1 提权
如何用腾讯建站主机快速创建免费网站?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
如何构建满足综合性能需求的优质建站方案?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
黑客如何利用漏洞与弱口令入侵网站服务器?
js实现获取鼠标当前的位置
如何快速上传自定义模板至建站之星?
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
如何在云指建站中生成FTP站点?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
如何在万网开始建站?分步指南解析
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
java获取注册ip实例
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
使用Dockerfile构建java web环境
如何在七牛云存储上搭建网站并设置自定义域名?
如何快速完成中国万网建站详细流程?
晋江文学城电脑版官网 晋江文学城网页版直接进入
新三国志曹操传主线渭水交兵攻略
西安专业网站制作公司有哪些,陕西省建行官方网站?
Laravel如何使用Telescope进行调试?(安装和使用教程)
Laravel怎么为数据库表字段添加索引以优化查询
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
网站建设保证美观性,需要考虑的几点问题!
网站页面设计需要考虑到这些问题
利用JavaScript实现拖拽改变元素大小
EditPlus 正则表达式 实战(3)
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
大型企业网站制作流程,做网站需要注册公司吗?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
如何在腾讯云服务器上快速搭建个人网站?
个人摄影网站制作流程,摄影爱好者都去什么网站?
使用C语言编写圣诞表白程序
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
黑客如何通过漏洞一步步攻陷网站服务器?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
JavaScript如何实现路由_前端路由原理是什么
Laravel Docker环境搭建教程_Laravel Sail使用指南
利用python获取某年中每个月的第一天和最后一天
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Laravel如何发送系统通知?(Notification渠道示例)


55.106$request_uri? permanent;
}
}
server {
listen 8082;
server_name 192.168.155.98;
location / {
rewrite ^ $scheme://192.168.155.107$request_uri? permanent;
}
}
server {
listen 8083;
server_name 192.168.155.98;
location / {
rewrite ^ $scheme://192.168.155.109$request_uri? permanent;
}
}
server {
listen 8084;
server_name 192.168.155.98;
location / {
rewrite ^ $scheme://jiaoyu.dn.cloudp.cc$request_uri? permanent;
}
}