nginx屏蔽某些地区访问网站

背景:用aws e2实例部署了一个网站

需求:屏蔽国内用户访问

实现:通过nginx

aws自己提供  CloudFront 功能 地理限制功能,可惜是收费的,为了节约资源我就找了免费的实现方式

1.访问 https://www.ip2location.com/free/visitor-blocker 网站选择想要屏蔽的地区

nginx屏蔽某些地区访问网站_第1张图片 下滑

nginx屏蔽某些地区访问网站_第2张图片

 下载文件并打开文件,去掉箭头所指部分,和最后一行的"}"

nginx屏蔽某些地区访问网站_第3张图片

保存并修改文件名为“blockip.conf”

nginx屏蔽某些地区访问网站_第4张图片 

这里需要注意的是打开简介看一下名称,我修改后文件名显示的是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文件参考配置

nginx屏蔽某些地区访问网站_第5张图片

 去掉干扰项,重点看箭头部分 

include             /etc/nginx/blockip.conf;

6.重启连接

sudo nginx -s reload

以上操作即可

你可能感兴趣的:(部署网站,nginx,aws,macos,运维)