我的 keepalived 配置无法正常工作。
我有两台虚拟测试机(virtualbox)来尝试使用 keepalived/vrrp 进行一些操作。机器人可以完美地互相 ping 通(内部 virtualbox 网络)。
虚拟机 1(主):
eth0: Management
eth1: 192.168.2.1/24
eth2: 192.168.2.2/24
keepalived.conf:
vrrp_instance test {
state MASTER
interface eth1
track_interface {
eth2
}
virtual_router_id 1
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.3.1/24 dev eth1
192.168.3.2/24 dev eth2
}
}
tcpdump on eth1:
12:44:54.720119 IP 192.168.2.1 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 1, prio 101, authtype simple, intvl 1s, length 24
12:44:55.049465 IP 192.168.2.3 > vrrp.mcast.net: VRRPv2, Advertisement, …Run Code Online (Sandbox Code Playgroud) 如何拒绝对文件夹的访问,但“拒绝”中的某些子文件夹除外?
我尝试了这样的事情(按此顺序):
#这个子文件夹不应该被拒绝,里面的php脚本应该是可执行的
位置 ~ /data/public { 允许所有; }
#此文件夹包含许多应拒绝公共访问的子文件夹
位置 ~ /data { 全部拒绝;返回404;}
...这不能正常工作。/data/public 文件夹中的文件是可以访问的(/data 中的所有其他文件都应该被拒绝),但 PHP 文件不再在 /data/public 文件夹中执行(如果我不添加这些限制,PHP文件是可执行的)。
怎么了?怎么可能是正确的?我认为有更好的方法来做到这一点。
如果有人能帮我解决这个问题,那就太好了:)。
谢谢,但 PHP 文件仍然没有在 /data/public/ 文件夹中执行,就像一个简单的
<? echo "test"; ?>
Run Code Online (Sandbox Code Playgroud)
它为您提供此文件作为下载(没有上面的“拒绝”配置,php 文件运行良好)。
我的PHP配置:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
Run Code Online (Sandbox Code Playgroud)
/data/ 之外的所有其他目录中的 PHP 文件都在工作......(其他子文件夹也是如此)。
keepalived ×1
linux ×1
networking ×1
nginx ×1
php ×1
rewrite ×1
rules ×1
virtualbox ×1
vrrp ×1