查看nginx运行状态_部署Nginx网站服务实现访问状态统计以及访问控制功能

news/2024/5/19 8:46:38/文章来源:https://blog.csdn.net/weixin_39646412/article/details/111123849

b0c51a01e581333891b8f141fe16d10e.gif

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仓库的步骤详细步骤请参考 https://www.linuxidc.com/Linux/2018-11/155508.htm

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/

362f4a684fee754f1396fda4b0cbbae4.png

第二步检查配置文件并启动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浏览器

1fc962e18b28303bb1468bbab0d94e99.png

配置访问状态统计页面

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   //禁用防火墙

420ab3bf17e45eea2054b3dc7210c6ca.png

其中,“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).用浏览器访问网址,检验控制效果。

4bd6e258480d3260ff16304f5e66d74c.png

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

be8035f3c3c7f29d4e2f484dba79d9d8.png

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 

ea51abc9c2281e0be2f4b1f86a41558a.png

db8975e15c6085ee714a72ca9e137e71.png

要注意的是如果是用域名访问网页,需要配置DNS域名解析服务器,详细步骤参考https://www.linuxidc.com/Linux/2018-11/155523.htm。

fcdcdb00214f85698de4e0b371f8171f.png

04a5ff42719a3e2184d7b07a95ca29a8.png5bffa13de61304deeb422ee15b4ad972.png4395da0d905108440291495784cffa99.png0eefa39702c717034e7f23c37bbcb8be.png

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

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

相关文章

mysql msvcr_「msvcr120.dll」MySQL免安装版,遇到MSVCR120.dll文件丢失错误的解决方案 - seo实验室...

msvcr120.dll在进行mysql zip版本的安装时,遇到上图的错误,在网上找了相关的文件拷贝到相应目录下,但还是不行。后来终于找到解决方法:下载 VC redist packages for x64,下载完成,点击运行即可。相关阅读最…

代码命名网站

链接:http://unbug.github.io/codelf/ 相关说明及插件:https://github.com/unbug/codelf 有一些小伙伴,在进行变量命名的时候,对于自己熟悉的英文,可能还会用英文命名一下,如果需要命名的部分不会用英文表…

网站不让复制文字??教你破解复制+白嫖下载百度等各种文档

前阵子需要写篇 xxxx 感想的文章,当然,这种一般都是学校要求写的,作为高中作文在及格边缘徘徊的“好学生”,写是不可能写的了,只能拿出我的 从 CV 大法,去各大网站搜索白嫖别人的作文,然而白嫖的…

10大免费的白嫖网站

本次给大家分享下 pk 哥常用的 10个白嫖网站。 万能命令 https://wanneng.run/cn/在你浏览任意网页时,在网址前面输入这个万能命令 wn.run/ 就会展示出用于该网页的各种附加在线工具,方便快捷,一行命令搞定! 收录了很多高质量的…

程序员必备网站之一:No Design

昨天在逛 Hacker News 的时候,我偶然发现个宝藏网站:No Design。 地址:https://nodesign.dev 网站上收集了许多十分便利的 UI 设计工具与设计资源,看完后我内心激动不已,这网站对于那些不太懂设计的开发者来说&#x…

自学编程精品网站。

我敢保证,它们适合 所有 想要自学编程的同学。并且我相信,对于有一定经验的程序员,这些网站也基本都用过。 我将这些网站大致分为了几类: 学习类 freeCodecamp https://chinese.freecodecamp.org/ 一个适合初学者入门的免费实战…

nginx网站服务(访问状态统计、虚拟主机应用、访问控制设置)

nginx网站服务(访问状态统计、虚拟主机应用、访问控制设置)一:源码安装nginx1.1:安装环境所需的软件包1.2:创建运行用户、组1.3:解压软件包、编译安装1.4:优化执行路径1.5:编写状态管…

jar包搜索_为啥mvnrepository网站jar包,下载不下来

我们团队有维护一个很老的大数据脚本项目,此项目写一些spark任务,然后打包上传到大数据平台,跑一些任务。最近安全团队,爆出此项目有一些jar,有安全风险,需要进行jar的升级。pull此项目的时候,发…

页面布局_如何通过网站页面布局优化提升seo关键词排名?

点击蓝字|关注我们大多数做SEO的人不会忽视网站的页面优化。很多人把注意力集中在网站主页的页面优化上。网站页面优化也是网站内部优化的第一步。通过页面内容的布局调整和设计,可以创建一个用户喜欢并有利于搜索引擎抓取和识别的页面,从而提…

[python网站开发] 一.Django入门知识及创建第一个网站

转自: https://blog.csdn.net/Eastmount/article/details/73735279 随着Python应用越来越广泛,学习Python相关知识越来越多的人选择。最新研究,Python已成为美国top高校最受欢迎的语言,同时国内用Python开发的网站越来越多&#…

读论文的好网站

发现了一个更好的网站 Browse the State-of-the-Art in Machine Learning 也是按主题划分的,各个领域都有,大热的CV,NLP到小众一些的Graphs,时间序列等都有涉及。 这个网站收的论文更多更全,也很新,CVPR2…

SharePoint 2010新建站点不能登录解决方法

近期在使用SharePoint 2010,今天我在一台新服务器上(单服务器,无域环境),新建了一个SharePoint 2010的站点(先创建Web应用程序,再创建网站集),发现,在登录这个…

博客优化 搜索SEO优化 提高搜索量

csdn博客文章SEO优化提高搜索量,博客优化方法,搜索优化增加博客文章阅读量生成百度快照 。博客文章主要是会推送到百度,百度爬虫生成网页快照,这样的话百度搜索引擎会在搜索结果根据权重排名展示。 博客文章标题 文章的标题简短,包含关键词不超过30个字,…

网站数据库断连重启服务器,重启服务器上的数据库服务器

重启服务器上的数据库服务器 内容精选换一换云数据库RDS服务上的MySQL在使用上有一些固定限制,用来提高实例的稳定性和安全性,具体详见表1。您可以通过导出SQL语句的方式将数据库备份到弹性云服务器上。弹性云服务器不限制存放哪些数据,但是数…

旅游网站的主页代码_网络营销知识_关注企业优化教程,增加网站优化胜算

发布时间:2020-12-07 05:12:11企业网站查找优化教程的中心点在于做方针关键词,做方针关键词的站外要素很大程度上是发外链即锚文本建造,想要获得搜索引擎优化优化排名的着陆页很大程度上是主页。运用主页做企业网站方针关键词排名,就是中心的…

为什么手机网速太慢_建设手机端公司网站需要注意哪些问题

现在是一个移动互联网时代,移动端几乎已经包含了人们的衣食住行。因此现在很多企业都开始建设手机网站。但是很多时候建设出来的手机网站并没有达到要求,导致资源浪费。下面我们就来看看手机网站建设需要注意哪些问题。一、对于手机网站而言,…

将网站上的web字体base,woff2转换成.ttf系统字体

一.场景1:将woff2转换成.ttf. (1)f12调用浏览器控制面板查看network,一定是选中font请求其他过滤掉 (2)查看左侧请求浏览右侧preview你会看到响应的字体预览 (3)确认是目标字体后把当…

自适应页面网站制作

找到工入职后,老板给的第一个任务就是自适应网站的制作。我是个菜鸡,虽然上学有做过页面,但大家懂得。 具体总结我会再写一篇文章来分析的。 今天对一些自适应页面的技巧分享一下。 1.web端 2.移动端效果,750px内 这样的排布&am…

linux访问网页脚本在哪里,Shell脚本监控网站页面正常打开情况

现在单位为了省钱,我用了shell脚本,简单的写了一个监控。通过curl一个固定页面的200状态码,如果是200,就说网站是正常的,如果不是200就自动重启网站,然后发邮件到QQ邮箱。自己在上QQ的同时,通过微信也可以收…

购买阿里学生机ECS服务器、建站基础操作、云服务器搭建部署配置JDK和Tomcat(附安装包)、SSH远程连接

购买学生机云服务器¥10/月 我买的操作系统是linux——CentOs7,做服务器最好是用linux 进入控制台等待创建实例的完成, 重置了我的实例密码,用户名root,密码刚才重置的,实例重启,就能远程连…