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

news/2024/5/20 15:12:03/文章来源:https://blog.csdn.net/weixin_33910434/article/details/92705573

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”选项来对配置文件进行检查,以便找出不当或错误的配置。

[root@centos7-1 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服务器

[root@centos7-1 nginx-1.12.0]# nginx 
[root@centos7-1 nginx-1.12.0]# killall -1 nginx       //重启nginx服务
[root@centos7-1 nginx-1.12.0]# killall -3 nginx      //停止nginx服务

3.使用Nginx服务脚本

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

[root@centos7-1 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" instart)$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
[root@centos7-1 nginx-1.12.0]# chmod +x /etc/init.d/nginx
[root@centos7-1 nginx-1.12.0]# chkconfig --add nginx                 //添加为系统服务
[root@centos7-1 nginx-1.12.0]# systemctl start nginx.service

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

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

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

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

  • 配置访问状态统计页面

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

    [root@centos7-1 nginx-1.12.0]# cd /usr/local/nginx/conf
    [root@centos7-1 conf]# mv nginx.conf nginx.conf.back
    [root@centos7-1 conf]# grep -v "#" nginx.conf.back > nginx.conf     //过滤配置文件#号注释的信息
[root@centos7-1 conf]# vim nginx.confserver {listen       80;server_name  localhost;charset utf-8;location / {root   html;index  index.html index.htm;}//在"server"这里插入的这4行的信息location ~ /status {                      //访问位置为/statusstub_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         //禁用防火墙

部署Nginx网站服务实现访问状态统计以及访问控制功能
其中,“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软件包
    [root@centos7-1 ~]# htpasswd -c /usr/local/nginx/passwd.db test
    New password:                      //设置test用户密码
    Re-type new password: 
    Adding password for user test
    [root@centos7-1 ~]# cat /usr/local/nginx/passwd.db         //查看生成的用户认证文件
    test:$apr1$WfkC0IdB$sMyjqJzg2tcqcIe1mJ8LI/

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

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

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

[root@centos7-1 ~]# vim /usr/local/nginx/conf/nginx.conflocation / {auth_basic "secret";       //添加认证配置auth_basic_user_file /usr/local/nginx/passwd.db;root   html;index  index.html index.htm;}

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

[root@centos7-1 ~]# 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@centos7-1 ~]# systemctl restart nginx.service

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

部署Nginx网站服务实现访问状态统计以及访问控制功能
需要输入用户名和密码进行访问,验证通过才能进行访问。
部署Nginx网站服务实现访问状态统计以及访问控制功能

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

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

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

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

[root@centos7-1 ~]# vim /usr/local/nginx/conf/nginx.conflocation / {deny 192.168.113.132;          //客户端IPallow all;root   html;index  index.html index.htm;}

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

[root@centos7-1 ~]# systemctl restart nginx.service 

部署Nginx网站服务实现访问状态统计以及访问控制功能
部署Nginx网站服务实现访问状态统计以及访问控制功能
要注意的是如果是用域名访问网页,需要配置DNS域名解析服务器,详细步骤参考使用Bind部署DNS域名解析服务器之正向解析

转载于:https://blog.51cto.com/11134648/2130987

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_735595.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可以免费自学编程的12个网站

编程学习本文来自简书,原文地址:http://www.jianshu.com/p/9f094ce31075 很多人包括一些企业家,和市场营销人员都认为学习编程对一个人走向成功十分有帮助。在过去的一年里,我一直在学习编程。它有助我成为一个更好的创业者,我甚至…

PHP如何打造一个高可用高性能的网站呢?

https://blog.csdn.net/jwq101666/article/details/80162245 1. 说到高可用的话要提一下redis,用过的都知道redis是一个具备数据库特征的nosql,正好弥补了PHP的瓶颈,个人认为PHP的 瓶颈在于数据库,像Apache和Nginx的高级web服务器…

怎么修复网站漏洞之metinfo远程SQL注入漏洞修补

2019独角兽企业重金招聘Python工程师标准>>> 2018年11月23日SINE网站安全检测平台,检测到MetInfo最新版本爆出高危漏洞,危害性较大,影响目前MetInfo 5.3版本到最新的 MetInfo 6.1.3版本,该网站漏洞产生的主要原因是Met…

IIS配置和发布网站

一、安装配置IIS 控制面板-》程序和功能-》启用或关闭Windows功能选中“Internet Information Services”,勾选Web管理工具子项,万维网服务子项(万维网中有极少数不用勾选,不做细致描述全部勾选了)。勾选完成后&#x…

资源帖-优秀博客、iOS开发技术文、学习网站

图片发自简书App 一些博客 王巍 Objc中国发起人、Line工程师ibireme YYKit作者bang JSPatch作者唐巧 《iOS开发进阶》作者、猿题库工程师孙源 前百度工程师,现滴滴工程师玉令天下xuyafei张不坏NSHipster中文版glow刚刚在线里脊串Jamin阿毛的蛋疼地zeeyangTian Wei…

关于初创型公司对公司网站的开发与管理内容

WebSite 一、理论和原理二、软件、类库、中间件三、技术相关四、案例分析对于一个网站而言需要知道公司的需求,想要给别人展示的是什么,重点放在哪里,让观众了解或者注重自己的关键点在哪里,方便观众更快更好的了解公司是干什么的…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

电脑服务器显示过期,win10系统提示你的设备存在过期风险怎么办_网站服务器运行维护,win10...

win7系统安装后无网络适配器怎么办_网站服务器运行维护win7系统安装后无网络适配器的解决方法是:1、打开控制面板,进入【设备管理器】;2、右键点击异常的驱动程序,选择【更新驱动程序】;3、选择【浏览我的计算机以查找…

利用java爬取网上信息_java爬取网站信息和url实例

https://blog.csdn.net/weixin_38409425/article/details/78616688(出自此為博主)具體代碼如下:import java.io.BufferedReader;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.Print…

seo代码优化工具_seo外包的内幕曝光_云一哥

为了让企业网站建好后,用有更好的排名,能更快更好的提高品牌形象和宣传力度,那么要选择一家专业的seo外包公司为企业提供服务。那首先就要知道做seo的工作内容,所以云一哥就和大家分享下SEO外包都有哪些工作内容?seo外…

php linux 缓存文件,Linux下搭建网站提示缓存文件写入失败的处理办法

Linux下建立网站提示缓存文件写入失利时该怎样处理?依据ThinkPHP结构及Linux环境建立的网站,经常会遭受缓存文件写入失利的过错提示,即就是现在盛行的P2P网站程序就是如此,详细处理办法请看下文。缓存文件写入失利常见原因&#x…

springboot做网站_Github点赞接近100k的SpringBoot学习教程+实战推荐!牛批!

很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这么好用以及天然微服务友好。不夸张的说,Spring Boot 是 Java 后端领域最最最重要的技术之一,熟练掌握它对于 Java 程序…

免费抖音视频解析网站_抖音规则解析:抖音视频为什么能火?推荐规则是什么?【揭秘】...

视频出现之后,又相继出现抖音、西瓜、火山、美拍等短视平台,其中以抖音、快手为主,而各大互联网公司都开始纷纷涉猎短视频领域,那么究竟要怎么要才能玩转短视频平台呢 !今天小编就给大家分析一下抖音短视频的一些玩法规则&#xf…

c#服务器后台搭建_角点科技教你从0开始搭建一个网站

一、注册网站域名域名是网站的访问地址,这个一般大家都是知道的,那么域名是怎么来的呢?域名一般是注册的但是也有的人是购买的,注册和购买都很简单的,按照平台的提示流程走就可以拥有一个域名了,一般价格就…

简单动态网站搭建

如何在windows服务器上配置wordPress和discuz 网站建设中的概念讲解 网站建设的基础操作 网站程序的基础使用 网站程序的优化 简单动态网站搭建 软件部署 域名和主机的购买 域名解析 环境部署 安装程序 软件的使用和优化 wordpress的基础设置和使用 discuz的基础设置…

有些网站打开一半空白_高端定制网站如何设计才显高大上?

在网上常见的网站设计都是模板站,有一部分人对于网站建设要求是很高的,“高端定制网站如何建设才能吸引用户点击”一直是他们常思考的问题。接下来,我们常州互旦科技大家讲讲网站定制开发需要注意的问题:高端定制网站如何设计才显…

爬虫案例 某网站小说下载

由于版权问题,暂不对网站明述。 正常使用xpath进行爬取,没有反爬措施 爬取使用了进度条,说明一下进度条的使用和爬取遇到的问题: \r 表示将光标的位置回退到本行的开头位置 \b表示将光标的位置回退一位 print("\r", e…

江苏高考时间2021成绩查询,小高考时间2021具体时间江苏-江苏小高考成绩查询公布时间及网站...

选择科目测一测我能上哪些大学选择科目领取你的专属报告>选择省份关闭请选择科目确定v>2021年1月,全国多省举行了普通高中学业水平考试,其中江苏的学业水平合格性考试又被本地人称为是“小高考”,备受人们的关注。下面,我就…

仿站和模板建站的区别_企业建站:高价定制并不一定高质!

购买实物产品,如车、手机、衣服等,不考虑性价比的情况下,贵的一般质量会好很多,但建站目前还不是标准产品,信息高度不透明,普通用户没有评判标准,因此“贵的并不一定好”,而且你仔细…

利用cmd和ip入侵电脑_还偷看“不良网站”?这些麻烦都会找上你,难怪手机、电脑变卡了...

移动互联网时代,智能手机的功能性变得十分强大,借助各种APP,我们实现了线上支付、网购和社交等等,非常的便利,但是网络也是有双面性的,正确的利用确实能够带来很多方便,但同时也很容易误入一些“…