给服务器某个页面加上密码

103

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后需要重新输入密码