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/的配置。

我打算这次尝试设定登录次数限制。我还想试试不能注册已在密码列表中的密码。

广告
将在 10 秒后关闭
bannerAds