给服务器某个页面加上密码
1. 前言
问了问ai,有3种方法,javascript,nginx,php。之前用的是javascript,但使用这种方法时密码明文是直接可以通过查看网页源码获得的,不长久,折腾一下,试试配置nginx的方法
2. 设置
# 添加用户并输入密码
sudo htpasswd -c /etc/nginx/.htpasswd pw1
# 编辑配置文件
sudo vim sites-enabled/lab.ccgg.fun.conf
# 在写location的位置,添加下面这段
location /images/resources/huang_group_brochure.pdf {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location /publicationsdownload {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
# 以下是测试通过的对单个shiny页面加密的配置文件,需要放在locaiton的/shiny前面
location /shiny/osrnaseq1 {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:3838/osrnaseq1/;
}
# 测试并应用
sudo nginx -t
sudo nginx -s reload
3. 后记
此加密方法简单高效,输入一次密码管很长时间,清楚cookies后需要重新输入密码