4.46-访问控制4
限制user-agent
if ($http_user_agent ~ ‘Spider/3.0|YoudaoBot|Tomato’)
{
return 403;
}
#vi/etc/nginx/conf.d/bbs.qinkailinux.cc.conf
补充:
curl命令用法:
curl -v -A 'aaaaaspider/3.0' -e "1111" -x127.0.0.1:80 bbs.qinkailinux.cc –I
-A指定user-agent -e指定referer -x指定访问目标服务器的IP和port
-I只显示header信息, 不显示具体的网页内容
-v 显示详细的通信过程
限制uri
r
e
q
u
e
s
t
u
r
i
请
求
的
链
接
,
包
括
request_uri 请求的链接,包括
requesturi请求的链接,包括document_uri和$args
KaTeX parse error: Expected 'EOF', got '&' at position 35: …3.com/1.php?a=1&̲b=2的args就是a=1&b=2
(KaTeX parse error: Expected 'EOF', got '&' at position 51: …3.com/1.php?a=1&̲b=2的document_uri就是1.php,不包含后面的参数)
# vi /etc/nginx/conf.d/bbs.qinkailinux.cc.conf
if ($request_uri ~ (abc|123))
{
return 404;
}
4.48 Nginx反向代理
什么叫反向代理?
A(用户)——》B(在和C同一个机房,并且有公网)——》 C (不带公网的机器)
什么场景会使用方向代理?
1) 访问不带公网的内网机器
2) 解决两台机器之间通信有障碍的问题
实验:
虚拟机qinkai01 增加一块网卡 网络适配器类型选择仅主机模式
查看IP# ifconfig
配置静态IP# cd /etc/sysconfig/network-scripts/
# cp ifcfg-ens33 ifcfg-ens37 拷贝配置文件
# vi /etc/sysconfig/network-scripts/ifcfg-ens37 编辑配置文件
# systemctl restart network 重启网络服务
在cmd中使用ping命令测试网络连通性
场景设置:
1)A B两台机器,其中A只有内网,B有内网和外网
2)A的内网IP是192.168.197.130
3)B的内网IP是192.168.197.129 B的外网IP是192.168.236.128
4) C为客户端,C只能访问C的外网IP ,不能访问A或者B的内网IP
需求目的:
C要访问到A的内网上的网站
实验:在A虚拟机上拷贝Nginx文件到B
# scp /etc/yum.repos.d/nginx.repo 192.168.197.129:/etc/yum.repos.d/
在B虚拟机上安装nginx
# yum install -y nginx
安装完成后编辑配置文件
# cd /etc/nginx/conf.d/
# vi default.conf
server {
listen 80;
server_name localhost;
deny all;
# vi bbs.qinkailinux.cc.conf
server
{
listen 80;
server_name bbs.qinkailinux.cc;
location /
{
proxy_pass http://ip(源IP 这里指A的内网IP);
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
修改host文件 192.168.236.128 bbs.qinkailinux.cc
# firewall-cmd --add-port=80/tcp –permanent
# firewall-cmd –reload 加入80端口
# iptables -nvl |grep 80