nginx配置用户认证
2015-12-25 14:50
645 查看
一、查看当前系统参数
[root@rhel6u3-2 ~]# uname –r //查看系统内核版本号
2.6.32-279.el6.i686
[root@rhel6u3-2 ~]# cat /etc/redhat-release //查看系统版本号
Red Hat Enterprise Linux Server release 6.3 (Santiago)
##二、编辑虚拟主机配置文件
[root@rhel6u3-7 ~]# vim /usr/local/nginx/conf/nginx.conf //主配置文件中http字段中添加以下语句,将虚拟主机的配置文件指向www1.rsyslog.org
include /usr/local/nginx/server/www1.rsyslog.org;
[root@rhel6u3-7 ~]# vim /usr/local/nginx/server/www1.rsyslog.org
server {
listen 80; //监听端口为80
server_name www1.rsyslog.org; //虚拟主机网址
location / {
root sites/www1; //虚拟主机网站根目录
index index.html index.htm; //虚拟主机首页
auth_basic "secret"; //虚拟主机认证命名
auth_basic_user_file /usr/local/nginx/passwd.db; //虚拟主机用户名密码认证数据库
}
location /status {
stub_status on; //开启网站监控状态
access_log /usr/local/nginx/logs/www1_status.log; //监控日志
auth_basic "NginxStatus"; }
}
##三、通过htpasswd命令生成用户名及对应密码数据库文件。
[root@rhel6u3-7 server]# htpasswd -c /usr/local/nginx/passwd.db xiaonuo //创建认证信息,xiaonuo 为认证用户名
New password: ******* //输入认证密码
Re-type new password: ******** //再次输入认证密码
Adding password for user xiaonuo
也可使用OpenSSL生产用户名密码:printf "ssjlog:$(openssl passwd -crypt 123456)\n" >>conf/htpasswd
[root@rhel6u3-7 server]#
[root@rhel6u3-7 ~]# chmod 400 /usr/local/nginx/passwd.db //修改网站认证数据库权限
[root@rhel6u3-7 ~]# chown nginx. /usr/local/nginx/passwd.db //修改网站认证数据库属主和属组
[root@rhel6u3-7 ~]# cat /usr/local/nginx/passwd.db //可以看到通过htpasswd生成的密码为加密格式
xiaonuo:8eZAz7BqcrXmY
[root@rhel6u3-7 ~]#
##四、平滑重启nginx服务
[root@rhel6u3-7 ~]# /etc/rc.d/init.d/nginx reload //平滑重启nginx服务
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
Reloading nginx: [ OK ]
五、nginx运行状态监控配置
1、通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上--with-http_stub_status_module,在nginx.conf的server块中添加如下代码:
location /status {
# Turn on nginx stats
stub_status on;
# I do not need logs for stats
access_log off;
# Security: Only allow access from 192.168.1.100 IP #
#allow 192.168.1.100;
# Send rest of the world to /dev/null #
#deny all;
}
配置完后重新启动Nginx后我们可以通过浏览器访问http://localhost/status 查看
2、解析:
Active connections //当前 Nginx 正处理的活动连接数。
server accepts handled requests //总共处理了8 个连接 , 成功创建 8 次握手,总共处理了500个请求。
Reading //nginx 读取到客户端的 Header 信息数。
Writing //nginx 返回给客户端的 Header 信息数。
Waiting //开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接
3、通过命令查看tcp状态
#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 17
ESTABLISHED 3254
LAST_ACK 236
FIN_WAIT_1 648
FIN_WAIT_2 581
CLOSING 7
CLOSE_WAIT 4916
解析:
CLOSED //无连接是活动的或正在进行
LISTEN //服务器在等待进入呼叫
SYN_RECV //一个连接请求已经到达,等待确认
SYN_SENT //应用已经开始,打开一个连接
ESTABLISHED //正常数据传输状态/当前并发连接数
FIN_WAIT1 //应用说它已经完成
FIN_WAIT2 //另一边已同意释放
ITMED_WAIT //等待所有分组死掉
CLOSING //两边同时尝试关闭
TIME_WAIT //另一边已初始化一个释放
LAST_ACK //等待所有分组死掉
4、查看进程打开文件数量
lsof -p <PID>
[root@rhel6u3-2 ~]# uname –r //查看系统内核版本号
2.6.32-279.el6.i686
[root@rhel6u3-2 ~]# cat /etc/redhat-release //查看系统版本号
Red Hat Enterprise Linux Server release 6.3 (Santiago)
##二、编辑虚拟主机配置文件
[root@rhel6u3-7 ~]# vim /usr/local/nginx/conf/nginx.conf //主配置文件中http字段中添加以下语句,将虚拟主机的配置文件指向www1.rsyslog.org
include /usr/local/nginx/server/www1.rsyslog.org;
[root@rhel6u3-7 ~]# vim /usr/local/nginx/server/www1.rsyslog.org
server {
listen 80; //监听端口为80
server_name www1.rsyslog.org; //虚拟主机网址
location / {
root sites/www1; //虚拟主机网站根目录
index index.html index.htm; //虚拟主机首页
auth_basic "secret"; //虚拟主机认证命名
auth_basic_user_file /usr/local/nginx/passwd.db; //虚拟主机用户名密码认证数据库
}
location /status {
stub_status on; //开启网站监控状态
access_log /usr/local/nginx/logs/www1_status.log; //监控日志
auth_basic "NginxStatus"; }
}
##三、通过htpasswd命令生成用户名及对应密码数据库文件。
[root@rhel6u3-7 server]# htpasswd -c /usr/local/nginx/passwd.db xiaonuo //创建认证信息,xiaonuo 为认证用户名
New password: ******* //输入认证密码
Re-type new password: ******** //再次输入认证密码
Adding password for user xiaonuo
也可使用OpenSSL生产用户名密码:printf "ssjlog:$(openssl passwd -crypt 123456)\n" >>conf/htpasswd
[root@rhel6u3-7 server]#
[root@rhel6u3-7 ~]# chmod 400 /usr/local/nginx/passwd.db //修改网站认证数据库权限
[root@rhel6u3-7 ~]# chown nginx. /usr/local/nginx/passwd.db //修改网站认证数据库属主和属组
[root@rhel6u3-7 ~]# cat /usr/local/nginx/passwd.db //可以看到通过htpasswd生成的密码为加密格式
xiaonuo:8eZAz7BqcrXmY
[root@rhel6u3-7 ~]#
##四、平滑重启nginx服务
[root@rhel6u3-7 ~]# /etc/rc.d/init.d/nginx reload //平滑重启nginx服务
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
Reloading nginx: [ OK ]
五、nginx运行状态监控配置
1、通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上--with-http_stub_status_module,在nginx.conf的server块中添加如下代码:
location /status {
# Turn on nginx stats
stub_status on;
# I do not need logs for stats
access_log off;
# Security: Only allow access from 192.168.1.100 IP #
#allow 192.168.1.100;
# Send rest of the world to /dev/null #
#deny all;
}
配置完后重新启动Nginx后我们可以通过浏览器访问http://localhost/status 查看
2、解析:
Active connections //当前 Nginx 正处理的活动连接数。
server accepts handled requests //总共处理了8 个连接 , 成功创建 8 次握手,总共处理了500个请求。
Reading //nginx 读取到客户端的 Header 信息数。
Writing //nginx 返回给客户端的 Header 信息数。
Waiting //开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接
3、通过命令查看tcp状态
#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 17
ESTABLISHED 3254
LAST_ACK 236
FIN_WAIT_1 648
FIN_WAIT_2 581
CLOSING 7
CLOSE_WAIT 4916
解析:
CLOSED //无连接是活动的或正在进行
LISTEN //服务器在等待进入呼叫
SYN_RECV //一个连接请求已经到达,等待确认
SYN_SENT //应用已经开始,打开一个连接
ESTABLISHED //正常数据传输状态/当前并发连接数
FIN_WAIT1 //应用说它已经完成
FIN_WAIT2 //另一边已同意释放
ITMED_WAIT //等待所有分组死掉
CLOSING //两边同时尝试关闭
TIME_WAIT //另一边已初始化一个释放
LAST_ACK //等待所有分组死掉
4、查看进程打开文件数量
lsof -p <PID>
相关文章推荐
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- nginx代理指定目录
- Extjs4.0 最新最全视频教程
- 访问Nginx发生SSL connection error的一种情况
- Nginx+Naxsi部署专业级Web应用防火墙
- CentOS 6.2实战部署Nginx+MySQL+PHP
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- nginx中http核心模块的配置指令2
- nginx中http核心模块的配置指令3
- nginx中http核心模块的配置指令4
- nginx中http的fastcgi模块的配置指令1
- Nginx 学习笔记(一)
- 网站502与504错误分析
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- 自学成才的秘密:115个 web Develop 资源
- 艰难完成 nginx + puma 部署 rails 4的详细记录