部署Nginx网站服务实现访问状态统计以及访问控制功能

Nginx专为性能优化而开发,最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,单个物理服务器可支持30000-50000个并发请求。

Nginx的安装文件可以从官方网站http://www.nginx.org/下载,下面以Nginx1.12版本为例,基于CentOS7,部署Nginx网站服务。

  • 安装Nginx

第一步源码编译安装

1. 安装支持软件

Nginx的配置及运行需要gcc 、 gcc-c++ 、 make 、 pcre、pcre-devel、zlib-devel软件包的支持,以便提供相应的库和头文件,确保Nginx安装顺利。

创建yum仓库的步骤详细步骤请参考 Linux下通过rdesktop远程登陆Windows系统

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

如果是在有网络的情况下,CentOS7无需创建yum仓库,直接执行yum list命令更新一下yum源,稍微等待一会儿。

 yum list    //更新yum源
 yum install gcc gcc-c++ make pcre pcre-devel zlib-devel -y

2. 创建运行用户、组

Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确的控制其访问权限,增加灵活性,降低安全风险。

useradd -M -s /sbin/nologin nginx    //创建一个名为nginx用户,不建立宿主文件夹,禁止登录到shell环境

3. 编译安装

tar xzvf nginx-1.12.0.tar.gz -C /opt  //解压Nginx软件至opt目录下
cd /opt/nginx-1.12.0/  //切换到Nginx目录下

根据实际需要配置Nginx的具体选项,配置前可参考“./configure --help”给出的说明。

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

  • --prefix:指定Nginx的安装目录
  • --user:指定Nginx的运行用户
  • --group:指定Nginx的运行组
  • --with-http_stub_status_module:启用http_stub_status_module模块以支持状态统计,便于查看服务器的连接信息
    make                //生成二进制文件
    make install        //编译安装

    4. 为主程序Nginx创建链接文件

    创建Nginx主程序的链接文件是为了方便管理员直接“nginx”命令就可以调用Nginx的主程序。

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

    第二步检查配置文件并启动Nginx服务

1.检查配置文件

Nginx的主程序提供了“-t”选项来对配置文件进行检查,以便找出不当或错误的配置。

[[email protected] nginx-1.12.0]# 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

2.启动Nginx

直接运行Nginx即可启动Nginx服务器

[[email protected] nginx-1.12.0]# nginx
[[email protected] nginx-1.12.0]# killall -1 nginx       //重启nginx服务
[[email protected] nginx-1.12.0]# killall -3 nginx      //停止nginx服务

3.使用Nginx服务脚本

为了使nginx服务的启动、停止、重载等操作更加方便,可以编写nginx服务脚本,并使用chkconfig和systemctl工具来进行管理,这更加符合系统的管理习惯。

[[email protected] nginx-1.12.0]# vim /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"           //PID存放路径
case "$1" in
  start)
    $PROG
    ;;
  stop)
    kill -s QUIT $(cat $PIDF)              //根据PID中止nginx进程
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  reload)
    kill -s HUP $(cat $PIDF)              //根据进程号重载配置
    ;;
  *)
        echo "Usage: $0 {start|stop|restart|reload}"
        exit 1
esac
exit 0
[[email protected] nginx-1.12.0]# chmod +x /etc/init.d/nginx
[[email protected] nginx-1.12.0]# chkconfig --add nginx                 //添加为系统服务
[[email protected] nginx-1.12.0]# systemctl start nginx.service

第三步确认Nginx服务是否正常运行

通过检查Nginx程序的监听状态,或者在浏览器中访问此Web服务,默认页面将显示“Welcome to nginx!”

[[email protected] nginx-1.12.0]# netstat -antp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      54386/nginx: master
[[email protected] nginx-1.12.0]# yum install elinks -y
[[email protected] nginx-1.12.0]# elinks http://localhost //使用elinks浏览器

  • 配置访问状态统计页面

    Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况。要使用Nginx的状态统计功能,除了启用内建模块以外,还需要修改nginx.conf配置文件,指定访问位置并添加stub_status配置代码。

    [[email protected] nginx-1.12.0]# cd /usr/local/nginx/conf
    [[email protected] conf]# mv nginx.conf nginx.conf.back
    [[email protected] conf]# grep -v "#" nginx.conf.back > nginx.conf     //过滤配置文件#号注释的信息
[[email protected] conf]# vim nginx.conf

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

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

      //在"server"这里插入的这4行的信息
        location ~ /status {                      //访问位置为/status
        stub_status   on;                        //打开状态统计功能
        access_log off;                          //关闭此位置的日志记录
        }                    

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

       }
    }

新的配置生效后,在浏览器中访问nginx服务器的/status网站位置,可以看到当前的状态统计信息。

systemctl reload nginx.service                  //重新加载nginx服务
systemctl stop firewalld.service               //关闭防火墙
systemctl disable firewalld.service         //禁用防火墙


其中,“Active connections”表示当前的活动连接数;而“server accepts handled requests”表示已经处理的连接信息。三个数字依次表示已处理的连接数、成功的TCP握手次数、已处理的请求数。

  • 配置Nginx的访问控制

    1.基于用户授权的访问控制

    (1).使用htpasswd生成用户认证文件,如果没有该命令,可使用yum安装httpd-tools软件包,用法与Apache认证时方式一样,在/usr/local/nginx/目录生成passwd.db文件,用户名是test,密码输入2次。

    yum install httpd-tools -y    //安装httpd-tools软件包
    [[email protected] ~]# htpasswd -c /usr/local/nginx/passwd.db test
    New password:                      //设置test用户密码
    Re-type new password:
    Adding password for user test
    [[email protected] ~]# cat /usr/local/nginx/passwd.db         //查看生成的用户认证文件
    test:$apr1$WfkC0IdB$sMyjqJzg2tcqcIe1mJ8LI/

(2).修改密码文件的权限为400,将所有者改为nginx,设置nginx的运行用户能够读取。

[[email protected] ~]# chmod 400 /usr/local/nginx/passwd.db
[[email protected] ~]# chown nginx /usr/local/nginx/passwd.db
[[email protected] ~]# ll -d /usr/local/nginx/passwd.db
-r--------. 1 nginx root 43 6月  20 14:45 /usr/local/nginx/passwd.db

(3).修改主配置文件nginx.conf,添加相应认证配置项。

[[email protected] ~]# 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;
        }

(4).检测语法、重启服务

[[email protected] ~]# 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
[[email protected] ~]# systemctl restart nginx.service

(5).用浏览器访问网址,检验控制效果。


需要输入用户名和密码进行访问,验证通过才能进行访问。

2.基于客户端的访问控制

Nginx基于客户端的访问控制要比Apache的简单,规则如下:

  • deny IP/IP段:拒绝某个IP或IP段的客户端访问
  • allow IP/IP段:允许某个IP或IP段的客户端访问。
  • 规则从上往下执行,如匹配规则停止,不在往下匹配。

(1).修改主配置文件nginx.conf,添加相应认证配置项。

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf

  location / {
            deny 192.168.113.132;          //客户端IP
            allow all;
            root   html;
            index  index.html index.htm;
        }

deny 192.168.113.132表示这个ip地址访问会被拒绝,其他IP客户端正常访问。
(2).重启服务器访问网址,页面已经访问不到。

[[email protected] ~]# systemctl restart nginx.service 



要注意的是如果是用域名访问网页,需要配置DNS域名解析服务器,详细步骤参考使用Bind部署DNS域名解析服务器之正向解析

原文地址:http://blog.51cto.com/11134648/2130987

时间: 2024-09-29 09:35:50

部署Nginx网站服务实现访问状态统计以及访问控制功能的相关文章

Centos 7部署Nginx网站服务

一.Nginx服务基础 Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000~50000个并发请求).正因为如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务. 1.Nginx服务的优势 Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性: 高并发连接:官方测试能支撑5万并发连接,在实际生产环境中跑到2,~3W并发连: 内存消耗少:在

Nginx网站服务+LNMP架构及应用部署

第2章:Nginx网站服务 防伪码:撑起坚强! Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000-50000个并发请求).正因如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务. 一.安装及运行 1.搭建yum仓库,安装支持软件 2.创建运行用户.组(nginx默认以nobody身份运行,不安全,所以需要创建用户) 3.编译安装nginx和解包 为了方便管理

Nginx网站服务搭建——基础服务、设置访问权限

Nginx Nginx是一款高性能,轻量级web服务软件,其稳定性高.系统资源消耗低, 对HTTP并发连接的处理能力高. 常用命令 实验步骤 1.远程获取Windows上的源码包,并挂载到Linux上2.解压源码包.下载安装环境包3.创建程序用户并配置Nginx服务相关组件4.编译安装5.优化Nginx服务启动脚本,并建立命令软连接6.使用浏览器访问192.168.235.158,即可访问到Nginx服务的首页7.制作service管理脚本 [[email protected] nginx-1.

nginx网站服务于虚拟主机

   Nginx网站服务于虚拟主机 1:nginx的优点: 稳定性高 系统资源消耗低 http并发量处理能力好可支持30000-50000个并发请求 主要用于静态页面 以线程为单位,一个进程对应多个用户,(线程很少占用系统资源) 2:与Apache的对比: Apache主要用于动态页面 支持功能多 稳定性能高 Apache以进程为单位,一个用户对应一个进程(一对一) 3:nginx主要用于:电商,网站,社交,门户...... 4:安装及控制nginx 1.安装支持软件 [[email prote

搭建nginx网站服务及应用

实验环境: 服务器系统:Redhat 6.2             ip地址:192.168.10.1 客户机系统:Win7 64位 旗舰版   ip地址:192.168.10.2 系统环境:已搭建LAMP平台 1.搭建nginx服务并实现访问状态统计 [[email protected] ~]#yum -y install pcre-devel zlib-devel  #首先需要安装这两个工具 [[email protected] ~]#useradd -M -s /sbin/nologin

构建Nginx网站服务

随着计算机与Internet技术的蓬勃发展,各种Web站点成为直接面向用户的中坚力量,在各种网站服务器软件中,除了Apache外,还有一款轻量级的HTTP服务器软件--Nginx,其稳定性.高效的特性逐渐被越来越多的用户认可.本篇博客将搭建Nginx网站服务器,并配置基于域名的虚拟Web主机 Nginx的基本配置 Nginx是由俄罗斯的Igor Sysoev专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30 000-50 

Nginx 网站服务——虚拟主机配置

第1章 Nginx 网站服务 1.1 web网站服务介绍: 1.1.1 提供静态服务的软件 Apache:这是中小型Web服务的主流,Web服务器中的老大哥. Nginx:大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大. Nginx的分支Tengine(http://tengine.taobao.org/)目前也在飞速发展. Lighttpd:这是一个不温不火的优秀Web软件,社区不活跃,静态解析效率很高.在Nginx流行前,它是大并发静态业务的首选,国内百度贴吧.豆瓣等众多网

Nginx网站服务——基础服务与访问控制

Nginx简述 Nginx是一款高性能,轻量级web服务软件,其稳定性高.系统资源消耗低, 对HTTP并发连接的处理能力高(单台物理服务器可支持30000~50000个并发请求). Nginx常用命令 nginx -t 检查配置文件语法 nginx 启动nginx服务 killall -3 nginx 停止nginx服务 killall -s QUIT nginx 停止nginx服务 killall -s HUP nginx 重载nginx服务 killall -1 nginx 重载nginx服

在Linux系统中搭建Nginx网站服务

关于Nginx 一款高性能.轻量级Web服务软件 稳定性高 系统资源消耗低 对HTTP并发连接的处理能力高 单台物理服务器可支持30000 ~ 50000个并发请求 Nginx编译安装 Nginx源码包下载 安装支持软件 [[email protected] opt] yum install gcc gcc-c++ make pcre-devel zlib-devel -y 创建运行用户.组 [[email protected] opt] useradd -M -s /sbin/nologin