Nginx配置用户名密码访问

环境信息:

操作系统:CentOS 7.4

IP:192.168.0.111

如果我们 Nginx下搭建了一些站点,但是由于站点内容或者流量的关系,我们并不想让所有人都能正常访问,那么我们可以设置访问认证。只有让用户输入正确的用户名和密码才能正常访问。效果图如下:

Nginx配置用户名密码访问

在Nginx下,提供了ngx_http_auth_basic_module模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,Nginx已经安装了该模块。所以整体的一个过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在Nginx配置文件中根据之前事先保存的文件开启访问验证。

生成密码可以使用htpasswd,或者使用openssl 。下面以htpasswd为例。

一、安装htpassed工具

1、通过YUM安装httpd-tools

[root@localhost ~]# yum -y install httpd-tools

2、设置用户名和密码,并把用户名、密码保存到指定文件中:

[root@localhost ~]# mkdir /usr/local/nginx/auth

[root@localhost ~]# htpasswd -c /usr/local/nginx/auth/passwd admin

注意:/usr/local/nginx/auth/passwd是生成密码后的文件保存路径(passwdfile),admin是用户名(username)

Nginx配置用户名密码访问

查看最后生成的密码文件的内容:(admin分号后的内容就是加密过的密码)

[root@localhost ~]# cat /usr/local/nginx/auth/passwd

admin:$apr1$YiiyRyOe$C7voJqf8XHqsneZpbuI.31

二、修改配置文件

1、编辑Nginx配置文件,在对应的站点server段加入以下内容

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

#这里是验证时的提示信息
auth_basic "Please input password";
auth_basic_user_file /usr/local/nginx/auth/passwd;
Nginx配置用户名密码访问2、重启Nginx服务
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload

3、验证

# 浏览器访问服务器IP,出现以下界面

登录前

Nginx配置用户名密码访问

登录后(这里只是演示,就没写页面)

Nginx配置用户名密码访问

不输入用户名密码,效果图如下

Nginx配置用户名密码访问

三、htpasswd参数详解

htpasswd [-cmdpsD] [passwdfile] [username]

htpasswd -b[cmdpsD] [passwdfile] [username] password

htpasswd -n[mdps] username

htpasswd -nb[mdps] username password

htpasswd命令选项参数说明

-c     创建一个加密文件;

-n     不更新加密文件,只将htpasswd命令加密后的用户名密码显示在屏幕上;

-m     默认htpassswd命令采用MD5算法对密码进行加密;

-d     htpassswd命令采用CRYPT算法对密码进行加密;

-p     htpassswd命令不对密码进行进行加密,即明文密码;

-s     htpassswd命令采用SHA算法对密码进行加密;

-b     htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码;

-D     删除指定的用户。

部分参数使用演示

1、新增用户

用法:htpasswd -b [passwdfile] [username] [passwd]

[root@localhost ~]# htpasswd -b /usr/local/nginx/auth/passwd test 123456

Adding password for user test

2、删除用户

用法:htpasswd -D [passwdfile] [username]

[root@localhost ~]# htpasswd -D /usr/local/nginx/auth/passwd test

Deleting password for user test

3、创建文件,添加用户(注意密码文件,否则已存在文件会覆盖原内容)

用法:htpasswd -bc [passedfile] [username]

[root@localhost ~]# htpasswd -bc /usr/local/nginx/auth/passwd Test 123

Adding password for user Test

[root@localhost ~]# cat /usr/local/nginx/auth/passwd

Test:$apr1$a/jfDg9p$lzeItTUOP6SO/x8Is6act.

Nginx配置用户名密码访问

原创文章,作者:admin,如若转载,请注明出处:https://hostingchat.cn/1034.html

(0)
admin的头像admin
上一篇 2019年7月6日 下午6:15
下一篇 2019年7月23日 下午7:22

相关推荐

  • Linux安装Nginx(Yum方式)

    一、Nginx简介 Nginx(engine x)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第…

    2023年3月7日
    000
  • Nginx配置文件详解

    这篇文章主要是Nginx的配置文件详解,需要的朋友可以参考下。 user nginx nginx ; 定义Nginx运行的用户和用户组。window下不指定 worker_proc…

    2017年12月19日
    000
  • Nginx配置正向代理访问互联网(支持http、https)

    一、Nginx简介 Nginx(engine x)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第…

    2023年7月11日
    000
  • Ubuntu 22.04源码编译安装Nginx

    一、Nginx简介 Nginx(engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量…

    2023年8月9日
    000
  • Nginx+fancy实现漂亮的索引目录

    ngx-fancyindex模块的简介 Nginx Web 服务器自带的目录浏览功能看起来并不是那么的美观,我们可以使用ngx-fancyindex插件来美化目录浏览功能。 Ngi…

    2018年5月18日
    000
  • Nginx参数详解+Rewrite规则

    Nginx参数详解 Nginx常用配置参数有upstream,主要用于均衡后端多个实例: Nginx 的upstream目前支持5种算法分配方式: 轮询(默认rr round ro…

    2018年1月18日
    000
  • Nginx开启gzip压缩

    前言 Nginx开启Gzip压缩功能,可以使网站的css、js、xml、html等静态文件在传输时进行压缩,提高网站访问速度,进而优化Nginx性能,减轻网络带宽压力(节省带宽)。…

    2022年7月5日
    000
  • Nginx日志实时分析利器(Ngxtop)

    Ngxtop实时解析nginx访问日志,并且将处理结果输出到终端,功能类似于系统命令top,所以这个软件起名ngxtop。有了ngxtop,你可以实时了解到当前nginx的访问状况…

    2019年9月12日
    000
  • Nginx启用Status状态页面

    一、Nginx启用Status状态页面 Nginx可以通过with-http_stub_status_module模块来监控Nginx服务器的状态信息。 1、通过nginx -V来…

    2019年7月3日
    000
  • Linux环境Nginx动态添加模块

    说明: 有时我们需要在现有的web服务器上增加新的模块实现更为丰富的功能,Nginx算是比较常用的web服务器,但是nginx也不仅仅只可以做web服务器,只要有对应的插件还可用作…

    2020年4月9日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注