介绍

Nginx是一款轻量级的HTTP服务器软件,由俄罗斯的Igor Sysoev开发。它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且系统资源消耗非常低,现已逐渐被越来越多的用户认可,目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。

系统环境:

  • rhel 6.5 操作系统
  • 服务器IP地址:192.168.100.5
  • Nginx-1.6.0.tar.gz 百度下载 密码:gz86

实现目标:

  1. 安装Nginx服务器
  2. 启用Nginx的状态统计
  3. 创建多虚拟主机
  4. 实现用户身份验证访问
  5. 用户授权访问控制

开始部署

一. 安装Nginx服务器

1.安装依赖包

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2.新建nginx管理用户

useradd -M -s /sbin/nologin nginx

3.解压

tar xzvf nginx-1.6.0.tar.gz -C /opt

4.配置

cd /opt/nginx-1.6.0/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module #开启stub_status状态统计模块

5.编译及安装

make && make install

6.建立nginx链接,便于系统管理

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

########### nginx管理命令 ###########

nginx -t #nginx配置文件检查
nginx #启动
killall -1 nginx #重启nginx
killall -3 nginx #停止nginx

######################################

7.生成nginx管理脚本

vi /etc/init.d/nginx

#!/bin/bash
#chkconfig: - 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0

8.nginx赋予执行权限

chmod +x /etc/init.d/nginx

9.nginx加入系统服务管理

chkconfig --add nginx

10.启动nginx

service nginx start

11.测试

Nginx部署及综合应用


二. 启用Nginx的状态统计

1.进入nginx的conf目录

cd /usr/local/nginx/conf

2.备份nginx.conf配置文件

mv nginx.conf nginx.conf.bak

3.过滤掉注释文件至nginx.conf文件

grep -v "#" nginx.conf.bak > nginx.conf

4.编辑nginx.conf配置文件

vim nginx.conf

server {
listen 80;
server_name localhost;
charset utf-8;

location / {
root html;
index index.html index.htm;
}

  #修改此处配置

location ~ /status { #访问位置为/status
stub_status on; #打开状态统计功能
access_log off; #关闭此位置的日志记录
}

error_page 500 502 503 504 /50x.html;

  location = /50x.html {

root html;
}
}
}

5.检测配置文件是否配置正确

nginx -t

6.重新启动nginx

service nginx restart

7.测试

Nginx部署及综合应用


三. 创建多虚拟主机

1.编辑nginx主配置文件

vim /usr/local/nginx/conf/nginx.conf

2.添加以下两个虚拟主机

server {
listen 80;
server_name www.web1.com; #域名
location / {
root /var/www/web1; #站点目录
index index.html index.php;
}
}

server {
listen 80;
server_name www.web2.com; #域名
location / {
root /var/www/web2; #站点目录
index index.html index.php;
}
}

3.检测配置文件是否配置正确

nginx -t

4.重新启动nginx

service nginx restart

5.测试

访问www.web1.com 站点:
Nginx部署及综合应用

访问www.web2.com 站点:
Nginx部署及综合应用

四. 实现用户身份验证访问

1.使用htpasswd生成用户认证文件,需要输入两次密码确认

htpasswd -c /usr/local/nginx/passwd.db zhangsan

2.修改密码文件的权限

chmod 400 /usr/local/nginx/passwd.db

3.修改密码文件所有者

chown nginx /usr/local/nginx/passwd.db

4.编辑nginx主配置文件

vim /usr/local/nginx/conf/nginx.conf

location / {
auth_basic "secret"; #添加认证配置
auth_basic_user_file /usr/local/nginx/passwd.db; #指定密码文件路径
root html;
index index.html index.htm;
}

5.检测配置文件是否配置正确

nginx -t

6.重新启动nginx

service nginx restart

7.测试

Nginx部署及综合应用


五. 用户授权访问控制

1.编辑nginx主配置文件

vim /usr/local/nginx/conf/nginx.conf

location / {
deny 192.168.100.30; #禁止192.168.100.30访问
allow all; #允许其他主机访问
root html;
index index.html index.htm;
}

2.检测配置文件是否配置正确

nginx -t

3.重新启动nginx

service nginx restart

4.测试

未禁止访问时,该客户机可以正常访问浏览
Nginx部署及综合应用

添加禁止访问设置后,该客户机已经不能够访问浏览了
Nginx部署及综合应用