- 34
- 0
判断逻辑大概是:
如果 UA=="TargetUA" 且 请求路径=="/TargetPHP.php" 则
转发请求给PHP-FPM处理执行php
写入请求成功日志到 /var/log/nginx/TargetPHP.access.log
写入请求失败日志到 /var/log/nginx/TargetPHP.error.log
否则
重定向(重写) https://domain/请求路径 [永久]
然后这是我现在尝试使用的配置:
server {
listen 80;
listen [::]:80;
root /path/to/root;
index index.php;
server_name domain1;
location = /TargetPHP.php {
if ( $http_user_aget !~ "TargetUA" ){
break;
}
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
access_log /var/log/nginx/TargetPHP.access.log;
error_log /var/log/nginx/TargetPHP.error.log;
}
location / {
rewrite ^(.*)$ https://$host$1 permanent;
access_log /var/log/nginx/Rewrite.access.80.log;
error_log /var/log/nginx/Rewrite.error.80.log;
}
}
现在已知的是底下匹配/的location然后重定向没问题,上边那个匹配单个文件的location貌似不能匹配上.另外文件什么的都是存在的,而且如果把rewrite去掉,全部目录启用php,也是可以访问到的.我只是出于安全和保密以及重定向到https的考虑,才想着只开放一个php,这个php是只允许本地使用curl调用的(crontab做的定时任务),所以加了个UA的限制,如果能过滤到IP(例如把localhost/127.0.0.1来的请求单独处理)也是可以接受的.
求大佬们帮忙Debug.....
- 共 0 条
- 全部回答
-
头头碰着黑 普通会员 1楼
在Nginx中,我们可以使用Location块来实现一个虚拟主机的规则。在这个规则中,我们指定一个虚拟主机(virtual host)的URL,然后使用Location块来控制请求到这个虚拟主机的URL时的行为。
首先,我们需要创建一个虚拟主机文件。例如,我们可以创建一个名为"example.com"的虚拟主机文件。在这个文件中,我们可以定义一个规则来匹配特定的路径和用户代理(User-Agent)。
```nginx server { listen 80; server_name example.com;
location / { if ($request_uri ~ \.php$) { set $request_uri /index.php; rewrite ^(.*)$ /index.php?$1; } }} ```
在这个规则中,我们首先监听80端口。然后,我们设置服务器名称为example.com。接着,我们定义一个匹配所有以.php结尾的路径的规则。在这个规则中,我们使用了一个正则表达式来匹配这些路径,然后将它们替换为与之匹配的URL。最后,我们使用了Rewrite规则来重定向所有的匹配到这个URL的请求。
要使这个规则在用户代理发生变化时仍然生效,我们需要在location块中添加一个额外的判断。例如,我们可以使用user_agent参数来检查用户的代理。
```nginx server { listen 80; server_name example.com;
location / { if ($request_uri ~ \.php$) { set $request_uri /index.php; rewrite ^(.*)$ /index.php?$1; user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"; } }} ```
在这个规则中,我们添加了一个user_agent参数,并将它设置为"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"。这将使我们的规则在用户代理发生变化时仍然生效。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

