用 xiuno 搭建了一个用来专门做笔记的论坛,主要看上它可以 web 端访问,手机也可以随时查阅,搜索可以标题搜索,也可以内容搜索。
放在腾讯云上面,在腾讯云的后台防火墙设置了 ip 白名单可以访问,但是现在想分享给认识的人也能访问也不想完全开放到互联网,但是又不想被一堆机器人扫描,因为目前我有个服务器为了做企业微信的验证,开放 80 端口,就一堆扫描爆破,只能通过记录日志,把那些 ip 拉入防火墙黑名单,黑名单容量有限还要定期删除一部分
另外我曾经建个自己用的 phpwind 论坛开放互联网访问,结果一堆机器人在上面发乱七八糟的广告信息
为了给某人访问,给他添加防火墙白名单也很麻烦,虽然可以通过腾讯云的 api 添加,但是一个人还好,人多了就要添加很多条 ip 白名单,而且手机的 ip 地址隔段时间还会变的
因为分享网站链接给别人是在微信上的,如果在 nginx 使用 auth_basic 认证,微信内置浏览器不会弹出输入用户名密码的框,直接显示 401 Authorization Required
目前我有一个想法,现在我有个企业微信,可以自建应用,可以拉朋友进应用里,他只有在应用里点击访问的菜单按钮,应用会接到后台服务器,后台软件会通过 2FA 验证器方式生成一个 6 位的数字(我把有效期设置为两个小时),然后就会生成一个包含验证数字的网址,比如 myxiuno.com/342567 ,后台软件也会用 2FA 验证器以同样的密钥在网站根目录生成一个作为验证的 342567 的文件夹,软件会每两小时重命名验证文件夹
然后 nginx 能否实现检测访问网址的二级目录和网站验证文件夹名字做比较,如果是一样的,那么就 proxy_pass http://127.0.0.1:8888/;#搭建的论坛访问端口
比如访问的网址是 myxiuno.com/342567/?thread-311.htm ,如果网站根目录的验证文件夹名字是 342567 ,那就可以正确访问到 http://127.0.0.1:8888/?thread-311.htm 。
但是如果是 myxiuno.com/?thread-311.htm ,或者验证码过期了 myxiuno.com/652092/?thread-311.htm ,那么就返回 404
[/ol]
我目前是这样写配置的
location / {
root C:\website;
if (-f $request_filename)
{
proxy_pass http://127.0.0.1:8888/;
}
return 404;
}
可是提示错误
nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in C:\phpstudy_pro\Extensions\Nginx1.15.11/conf/nginx.conf:275
[ol]
[/ol]
Nginx, 访问, 验证, proxy_pass