分类 Development 下的文章


有时候我们想要限制某个页面的访问权限,需要用户名密码才能进入。

如果使用 nginx 作为反向代理服务器,可以使用 auth_basic 来实现页面加密。

环境需求:

Linux env
nginx
apache2-utils (Debian, Ubuntu) or httpd-tools (RHEL/CentOS/Oracle Linux)

安装环境:

nginx 安装参考:https://niekun.net/index.php/archives/30.html

安装 apache2-utils:

apt-get install apache2-utils

创建账户密码:

使用了 htpasswd 命令创建用户。

关于 htpasswd 的详细使用:https://httpd.apache.org/docs/2.4/programs/htpasswd.html

建议将账户信息文件建立在 nginx 目录,我放在 /etc/nginx/users 目录下:

htpasswd -c /etc/nginx/users/.adminpasswd user1

.adminpasswd 为隐藏的存储所有账户信息的文件,user1 为用户名,回车后会提示输入密码,然后确认密码。

建立其他账户:

htpasswd /etc/nginx/users/.adminpasswd user2

不需要 -c 参数,因为文件已经建立了。

验证账户密码 -v

htpasswd -v /etc/nginx/users/.adminpasswd user1

删除账户 -D

htpasswd -D /etc/nginx/users/.adminpasswd user1

使用账户:

打开 nginx 配置文件,在需要账户登录的路径段修改如下:

location /path {
    ...
    auth_basic           "Administrator's Area";
    auth_basic_user_file /etc/nginx/users/.adminpasswd;
    ...
    ...
}

重新加载配置文件:

service nginx configtest
service nginx reload

打开对应页面测试是否提示输入账号密码。



首先判断自己网络 IP 地址是固定 IP/动态 IP/内网 IP,通过站长工具可以查询,或者终端执行如下指令查看外网看本地 IP 地址:

curl https://info.niekun.net/ip

然后从本地通过 ipconfig(win)/ifconfig(linux) 来查看网络路径,如果本地 IP 和上面检测出的一致,那就是有外网 IP,如果不一样则很可能自己分配到的是一个运营商内网。如下是我本地 Windows 电脑的结果,确认是内网:
2020-03-05T02:58:24.png

对于有外网 IP 但是是动态的,每隔一段时间自动变化的情况,可以使用 DDNS 来处理。

对于大多数家庭网络用户,都没有固定的 IP 地址或者也没有动态的 IP 地址,在本地搭建网络服务无法直接在外网访问,使用 frp 可以实现这一需求。

使用场景:路由器远程访问 远程访问/控制电脑 网搭建网站公网访问

项目地址:https://github.com/fatedier/frp
使用手册:https://gofrp.org/docs/

Windows 脚本参考:https://sspai.com/post/52523

阅读全文


在使用 github page 时可能会遇到提示 build failed 的问题,但是在本地加载页面没有问题,原因是 当你没有使用 Jekyll 建立网站时,github page 会错误的将一些 characters, specifically curly braces, as jekyll objects, tags, etc.,导致错误。

最简单的办法是在仓库根目录建立一个 .nojekyll 文件,让 github page 在 build 时跳过 Jekyll。

参考:https://github.community/t5/GitHub-Pages/GitHub-Pages-Builds-Fail/td-p/29172