背景:用aws e2实例部署了一个网站
需求:屏蔽国内用户访问
实现:通过nginx
aws自己提供 CloudFront 功能 地理限制功能,可惜是收费的,为了节约资源我就找了免费的实现方式
1.访问 https://www.ip2location.com/free/visitor-blocker 网站选择想要屏蔽的地区
下滑
下载文件并打开文件,去掉箭头所指部分,和最后一行的"}"
保存并修改文件名为“blockip.conf”
这里需要注意的是打开简介看一下名称,我修改后文件名显示的是blockip.conf,隐藏了扩展名,所以后续上传一直说找不到文件,我还很奇怪,打开一看,后面还有个txt,去掉之后上传就成功了。
2.上传至服务器
scp -i ~/Downloads/keyA.pem /Users/***/Downloads/blockip.conf ec2-user@ip地址:/home/ec2-user
三个参数,分别是密钥地址,文件地址,和上传的地址
3.连接服务器
ssh -i ~/Downloads/keyA.pem ec2-user@ip地址
可以查看一下
可以看到上传成功了
上传不成功的话可以在本地修改一下blockip.conf的权限再试一下
sudo chmod 644 blockip.conf
4.复制文件到指定地点
sudo cp blockip.conf /etc/nginx/
5.编辑nginx文件
sudo vi /etc/nginx/nginx.conf
(fn+c进入编辑模式,esc退出编辑,:wq!保存编辑并强制退出,:q!不保存并强制退出)
nginx文件参考配置
去掉干扰项,重点看箭头部分
include /etc/nginx/blockip.conf;
6.重启连接
sudo nginx -s reload
以上操作即可