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/

第二步检查配置文件并启动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内置了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   //禁用防火墙

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

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

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

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

nginx 根据目录指定root_部署Nginx网站服务实现访问状态统计以及访问控制功能相关推荐

  1. Web服务器群集--Nginx网站服务(运行控制,访问状态统计,基于授权和客户端的访问控制,基于域名,端口,IP的虚拟web主机访问)

    文章目录 前言 一:Nginx服务基础 1.1:Nginx概述 1.2:Nginx编译安装(过程) 1.3:运行控制(实验过程) 1.4:配置文件nginx.conf 1.5:Nginx的访问状态统计 ...

  2. Nginx网站服务配置(Nginx服务基础,访问状态统计,访问控制,虚拟主机)

    编译安装Nginx服务 关闭防火墙,将安装 ngnix 所需的软件包上传到 /opt 目录下 安装依赖包 编译安装Nginx 创建运行用户.组 检查.启动.重载配.停止Nginx 增加Nginx系统服 ...

  3. Nginx服务基础:配置文件、访问状态统计、虚拟主机

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.编译安装Nginx服务 1.关闭防火墙,配置域名 2.安装nginx软件包及依赖包 3.编译安装Nginx 4.检 ...

  4. nginx 访问状态统计 访问控制 虚拟主机

    文章目录 一.访问状态统计 二.访问控制 基于授权的访问控制 基于客户端的访问控制 三.虚拟主机 基于域名 基于IP 基于端口 一.访问状态统计 首先使用/usr/local/nginx/sbin/n ...

  5. 部署好网站,同局域网中电脑无法访问的问题的解决方案

    "部署好网站,同局域网中电脑无法访问的问题的解决方案". 第一,Win7安装IIS后,本地测试没问题,说明IIS配置正确:如果本地测试有问题,先检查IIS安装配置情况. 第二,检查 ...

  6. nginx 根据目录指定root_CentOS(7.6)基本操作与Nginx配置

    基本介绍 如果我们希望可以在 CentOS 的服务器中,部署 WEB 端项目,那么需要了解 连接服务器 (CentOS 7.6) CentOS 基本操作指令 如何在 CentOS 中安装 Nginx ...

  7. nginx 根据目录指定root_nginx安全优化与性能优化

    1.1 Nginx优化分类 安全优化(提升网站安全性配置) 性能优化(提升用户访问网站效率) 1.2 Nginx安全优化 1.2.1 隐藏nginx版本信息优化 官方配置参数说明:http://ngi ...

  8. docker启动nginx后挂了_Docker容器部署 Nginx服务

    1.查找 Docker Hub 上的 nginx 镜像 [root@localhost ~]# docker search nginx 2.拉取官方的Nginx镜像 [root@localhost ~ ...

  9. docker nginx tomcat mysql_使用docker部署nginx+tomcat架构(2):访问mysql数据库

    上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进 ...

最新文章

  1. css基础 设置链接颜色
  2. 蓝桥杯_算法训练_字串统计
  3. 记一次el-input使用的坑
  4. Promise学习笔记
  5. 信息学奥赛一本通(1259:【例9.3】求最长不下降序列)
  6. AtomicInteger 的使用
  7. android textview获取背景颜色,android – 从textview获取背景颜色而不使用ColorDrawable(API 11)...
  8. python pandas series_Python数据分析-pandas之Series
  9. VirtualBox 复制虚拟机 克隆系统
  10. MyEclipse安装插件egit并上传项目到码云
  11. 无刷直流电机四象限matlab pudn,Matlabmodel 在分析无刷直流电机 BLDC 数学模型的基础上 提出了无刷直 联合开发网 - pudn.com...
  12. 【第一期】电商分布式前沿springboot接口服务之配置-Array-专题视频课程
  13. This request has been blocked; the content must be served over HTTPS.
  14. 私厨菜谱app的设计与实现(三)
  15. 【Adobe】怎样给音频升降调?
  16. 如何把一张照片的像素提高_如何提升照片的像素?
  17. 计算机浏览器无法上网怎么办,电脑ie浏览器无法上网,浅析win10电脑ie浏览器无法上网的解决方法...
  18. AVM环视:一.相机标定及原理
  19. MySQL——VARCHAR和CHAR类型
  20. 10分钟了解BIM+GIS融合,常见BIM数据格式及特性

热门文章

  1. 据实而用 浅析会议摄像机的选购
  2. 使用ipmi调节r410的风扇转速
  3. 1.#_3 Typora(markdown格式文本编辑器) -- 配置高亮及快捷键
  4. java测试开发工程师,必须要明白的几处知识(附面试问题)
  5. 大学生科研项目选题计算机,大学生科研计划项目及选题.ppt
  6. 如何通过组策略控制远程主机空闲时间自动断开并注销
  7. 单片机led灯闪烁实验总结_51单片机实现LED流水灯
  8. led的c语言程序,单片机C语言LED灯点亮程序完全版
  9. Linux磁盘挂载和共享
  10. 关于Protel 2004 绘制电路原理图——元件库的建立