nginx的基本身份验证
搭建nginx服务器并进行基本身份验证。
执行环境
在GCP的虚拟机上进行了以下操作:
操作系统:Ubuntu 18.04
Web服务器:Nginx 1.19.1
实施
看起来以前的nginx默认conf文件已经发生了改变。
由于无论模仿哪篇文章都无法顺利进行,不得不费些功夫,因此写下来。
安装nginx
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install nginx
設定認證用的用戶名和密碼
将.htpasswd文件放置在/etc/nginx/目录下(通常在此处)。
第二行是为了使用htpasswd命令而安装软件包
然后,设置要注册的用户名和密码。
$ sudo touch /etc/nginx/.htpasswd
$ sudo apt-get install apache2-utils
$ sudo htpasswd -c -b /etc/nginx/.htpasswd [USERNAME] [PASSWORD]
顺便提一句,htpasswd命令使用-c选项可以生成新的.htpasswd文件,所以在添加第二个用户之后,需要去掉这个选项。
配置文件
以下的*.conf文件应该已经被include在/etc/nginx/conf.d目录下的配置文件中,所以文件名前面的扩展名无所谓。在这里,我们将其命名为hoge.conf。
– 在80端口等待连接。
– 显示在root指定的目录下的页面。
– 需要显示的html文件应该被附上index标签进行注册(←个人遗忘点)。
– location /下的auth_basic是设置身份验证对话框的配置。
– auth_basic_user_file指定了身份验证信息的配置文件。
/etc/nginx/conf.d$ cat hoge.conf
server {
listen 80 default_server;
server_name 0.0.0.0;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location / {
auth_basic "Please Login";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
确认conf文件
用以下命令检查conf文件的语法是否正确。
若输出类似下方两行,则说明OK 🙂
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
阅读
读取并显示最新的设置。
$ sudo nginx -s reload
如果事情不顺利,
希望您尝试删除/etc/nginx/nginx.conf中包含/etc/nginx/sites-enabled/的配置。
我打算这次尝试设定登录次数限制。我还想试试不能注册已在密码列表中的密码。