ngx_http_auth_basic_module它提供了最基本的http认证,这是http协议支持的,它会弹出一个框让你输入用户名和密码,只有用户名和密码输入正确了才能访问,这样就能保证自己的web不被任何人所访问。
ngx_http_auth_basic_module是使用文件作为存储介质的,用户名是明文存储,而密码是加密之后再存储,这样在认证框输入的用户名和密码必须和文件的信息匹配才能认证成功。这里使用htpasswd这个命令来生成存放用户名和密码的文件。
htpasswd 是开源 http 服务器 apache httpd 的一个命令工具,用于生成 http 基本认证的密码文件。
centos
yum -y install httpd
ubuntu
sudo apt-get install apache2-utils
Usage:
htpasswd [-cimBdpsDv] [-C cost] passwordfile username
htpasswd -b[cmBdpsDv] [-C cost] passwordfile username password
htpasswd -n[imBdps] [-C cost] username
htpasswd -nb[mBdps] [-C cost] username password
参数说明:
-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
-n 不更新passwordfile,只将加密后的用户名密码显示在屏幕上;
-m 默认采用MD5算法对密码进行加密
-d 采用CRYPT算法对密码进行加密
-p 不对密码进行进行加密,即使用普通文本格式的密码
-s 采用SHA算法对密码进行加密
-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
-D 删除指定的用户
[root@web02 /application/nginx/conf/extra]# yum install httpd-tools -y
[root@web02 /application/nginx/conf/extra]# htpasswd -cb /application/nginx/conf/htpasswd sunwenchao 123456
Adding password for user sunwenchao
[root@web02 /application/nginx/conf/extra]# chown www /application/nginx/conf/htpasswd
[root@web02 /application/nginx/conf/extra]# chmod 400 /application/nginx/conf/htpasswd
nginx配置文件内容如下
auth_basic "sunwenchao blog"
auth_basic_user_file /application/nginx/conf/htpasswd
htpasswd -c /application/nginx/conf/htpasswd Sun
New password:
Re-type new password:
Adding password for user Javen
htpasswd -bc /application/nginx/conf/htpasswd Sun 1234565
说明:在/application/nginx/conf/目录下生成一个htpasswd文件,用户名Sun,密码:123456,默认采用MD5加密方式。
注:去掉-c选项即可在第一个用户之后添加第二个用户
htpasswd -b /application/nginx/conf/htpasswd Sun 1234565
htpasswd -nb Sun 1234565
htpasswd -D /application/nginx/conf/htpasswd Sun
htpasswd 并没有直接修改密码的函数,需要先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能
htpasswd -D /application/nginx/conf/htpasswd Sun
htpasswd -b /application/nginx/conf/htpasswd Sun 1234565
看你具体是想做什么,现在现成的开源的java的http服务器有很多,像tomcat之类的都有http服务器功能,如果你只是单纯的需要用的话,直接用tomcat就好了但是如果你是做要自己用java实现一个http服务器的话就要稍微麻烦一点
http服务器,本质上还是基于tcpip协议的服务器,首先用java的ServerSocket监听一个端口(也可以使用开源的server组件,如quickserver之类的),然后对客户端发上来的数据进行处理,这里就需要了解一下http协议了,因为上来的数据,都是按照http协议来组织的,你需要将请求数据解析后,将响应数据组织成http的响应,发回给客户端。这样一个简单的http服务器就实现了。
但是这个请求和响应都有很多种类,一个完整的http服务器应该要都能够支持,所以这里面的工作量还是有一点的。
另外,上面说的http服务器只是一个静态的服务器,如果你想让你写的服务具有动态功能,那你的服务器还得提供javaee的容器功能,这样做下去,没准你也能写一个tomcat出来了……
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)