公司内部开发用的redmine, wiki等服务,计划在公司内网IP访问时可以直接访问,因为偶尔需要在家等远程访问需求,需要开放外网访问,计划在外网访问时增加一个基本认证机制,以限制外部人员获取信息。
首先使用htpasswd创建了一个用户密码文件
htpasswd -c /etc/nginx/.htpasswd developer
如果没有htpasswd命令可以通过 apt-get install apache2-utils
安装。
修改nginx的配置文件,加入以下内容
1 | if ($remote_addr ~ "^(192.168.1.|192.168.2.)" ) { |
测试(nginx -t)会出错:
nginx: [emerg] "auth_basic" directive is not allowed here in /etc/nginx/sites-enabled/default:31
改成
1 | set $realm "Restricted Content"; |
可解决。