文章目录

  • 前言
  • 一:Nginx服务基础
    • 1.1:Nginx概述
    • 1.2:Nginx编译安装(过程)
    • 1.3:运行控制(实验过程)
    • 1.4:配置文件nginx.conf
    • 1.5:Nginx的访问状态统计(实验过程)
  • 二:Nginx访问控制
    • 2.1:基于授权的访问控制
    • 2.2:基于客户端的访问控制
  • 三:Nginx虚拟主机
    • 3.1:Nginx虚拟主机应用
    • 3.2:基于域名的虚拟Web主机
    • 3.3:基于端口的虚拟web主机
    • 3.4:基于IP的虚拟web主机

前言

  • 在各种网站服务器软件中,除了Apache HTTP Server外,还有一款轻量级的HTTP服务器软件–Nginx,其稳定,高效的特性逐渐被越来越多的用户认可
  • 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名
  • 其特点是:占有内存少,并发能力强
  • 中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

一:Nginx服务基础

1.1:Nginx概述

  • 一款高性能、轻量级Web服务软件

    ●稳定性高

    ●系统资源消耗低

    ●对HTTP并发连接的处理能力高

    ●单台物理服务器可支持30 000 ~ 50000个并发请求

    ●占用内存少,并发能力强

1.2:Nginx编译安装(过程)

  • 安装支持软件

    [root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel
  • 创建运行用户、组

    [root@localhost ~]# useradd -M -S /sbin/nologin nginx  '//-M 不创建家目录'
  • 编译安装Nginx

  • 先mount.cifs挂载宿主机中的nginx软件包文件夹
    [root@localhost ~]# tar zxvf nginx-1.12.2.tar.gz
    [root@localhost ~]# cd nginx-1.12.0
    [root@localhost nginx-1.12.0]# ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_stub_ status_ module    '//开启stub_status状态统计模块'
    [root@localhost nginx-1.12.0]# make && make install
    [root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin  '//nginx命令执行路径优化'
    [root@locaThost nginx-1.12.0]# ls -l /usr/local/sbin/nginx
    Irwxrwxrwx 1root root27 5月16 16:50 /usr/local/sbin/nginx ->/usr/local/nginx/sbin/nginx
    

1.3:运行控制(实验过程)

  • 检查配置文件

    [root@localhost ~]# nginx -t '//检查'
    
  • 启动、重载配置、停止Nginx

    [root@localhost ~]# nginx    '//启动'
    [root@localhost ~]# netstat -anpt | grep nginx
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7180/nginx: master
    [root@localhost ~]# yum -y install elinks
    [root@localhost ~]# elinks http://localhost        '//显示"Welcome to nginx!"页面,表明Nginx服务已经正常运行'
    [root@localhost ~]# killall -s HUP nginx   '//-S选项指定信号种类,HUP信号表示重载配置'
    [root@localhost ~]# killall -s QUIT nginx  '//QUIT信号表示退出进程'
    
  • Nginx添加为系统服务

  • 第一种方法,使用systemctl工具进行管理

  • [root@localhost ~]# vim /lib/systemd/system/nginx.service     '//添加使用systemctl工具进行管理'
    [Unit]
    Description=nginx  '//描述'
    After=network.target   '//描述服务类别'[Service]
    Type=forking   '//后台运行形势'
    PIDFile =/usr/local/nginx/logs/nginx.pid   '//PID文件位置'
    ExecStart=/usr/local/nginx/sbin/nginx      '//启动服务'
    ExecReload=/usr/bin/kill -S HUP $MAINPID   '//根据PID重载配置'
    ExecStop=/usr/bin/kill -S QUIT $MAINPID        '//根据PID终止进程'
    PrivateTmp=true[Install]
    WantedBy=multi-user.target
    [root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service
    

    第二种方法,添加使用service工具进行管理

    [root@localhost ~]# cd /etc/inid.d      '//或者添加使用service工具进行管理'
    [root@localhost init.d]# ls
    [root@localhost init.d]# vim 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" instart)$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
    [root@localhost init.d]# chmod +x nginx
    [root@localhost init.d]# chkconfig --add nginx
    [root@localhost init.d]# chkconfig --level 35 nginx on
    
  • 此时,开启服务,关闭防火墙,就可以访问nginx网址了

    [root@localhost init.d]# service nginx start
    [root@localhost init.d]# systemctl stop firewalld
    [root@localhost init.d]# setenforce 0
    [root@localhost init.d]# netstat -ntap | grep nginx
    

1.4:配置文件nginx.conf

  • 全局配置

    #user nobody;
    worker_ processes 1;
    #error_ log logs/error.log;
    #pid logs/nginx.pid;
  • 1/O时间配置

    events {use epoll;worker connections 4096;
    }
    
  • HTTP配置

    http {....access_log logs/access.log main;sendfile on;...keepalive_ _timeout 65;server {listen  80;server name localhost;charset utf-8;location / {root html;index index.html index.php; }error_ page 500 502 503 504 /50x.html;location = /50x.html {root html; }}
    }

1.5:Nginx的访问状态统计(实验过程)

  • 启用HTTP_ STUB_ STATUS状态统计模块

    配置编译参数时添加–with-http stub status module

    nginx -V查看已安装的Nginx是否包含HTTP_ STUB _STATUS模块

    [root@localhost ~]# nginx -V
    nginx version: nginx/1.12.0
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
    configure arguments: --prefix=/usr/local/nginx --user=nginx --
    group= nginx --with-http_ stub_ status_ module
    
  • 修改nginx.conf配置文件

    [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
    http{server {listen 80;server name localhost;charset utf-8;location / {root html;index index.html index.php;}location ~/status {        '//添加此段'stub_ status on;access_ log off;}}
    }
    
  • 查看当前的状态统计信息

二:Nginx访问控制

2.1:基于授权的访问控制

  • 配置步骤与Apache基本一致

    ●生成用户密码认证文件

    ●修改主配置文件对相应目录,添加认证配置项

    ●重启服务,访问测试

  • 生成用户密码认证文件

    [root@localhost ~]# yum install -y httpd-tools    '//因为没有htpasswd工具,所以需要安装'
    [root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db test
    New password:
    Re-type new password:
    Adding password for user test
    root@localhost ~]# cat /usr/local/nginx/ passwd.db
    test:$apr1$x.UaSXIM$RRLa2KJcKwsGBVsikGcrR/
    
  • 修改主配置文件对相应目录,添加认证配置项

    [root@localhost ~]# chmod 400 /usr/local/nginx/passwd.db
    [root@localhost ~]# chown nginx /usr/local/nginx/passwd.db
    [root@localhost ~]# ll -d /usr/local/nginx/passwd.db
    -r------- 1 nginx root43 5月16 22:26
    /usr/local/nginx/passwd.db
  • 重启服务,访问测试

    [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
    server {location / {auth_basic "secret";auth_basic_user_file /usr/local/nginx/passwd.db;}
    
  • 此时访问网页会要求输入账号密码

2.2:基于客户端的访问控制

  • 通过客户端IP地址,决定是否允许对页面访问

  • 配置规则

    deny IP/IP段:拒绝某个IP或IP段的客户端访问

    allow IP/IP段:允许某个IP或IP段的客户端访问

    规则从上往下执行,如匹配则停止,不再往下匹配

  • 配置步骤

    • 修改主配置文件nginx.conf,添加相应配置项

      除主机192.168.195.128之外允许其他客户端访问

      [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
      server {location/ {deny 192.168.195.128;allow all; }
    • 访问测试,会报错403

三:Nginx虚拟主机

3.1:Nginx虚拟主机应用

  • Nginx支持的虚拟主机有三种

    ●基于域名的虚拟主机

    ●基于IP的虚拟主机

    ●基于端口的虚拟主机

  • 通过"server{}" 配置段实现

3.2:基于域名的虚拟Web主机

  • 配置步骤

    ●准备网站目录及测试文件

    [root@localhost ~]# mkdir -p /var/www/html/erbao/
    [root@localhost ~]# mkdir -p /var/www/html/sanbao/
    [root@localhost ~]# echo "this is erbao" >>
    /var/www/html/erbao/index.html
    [root@localhost ~]# echo "this is sanbao" >>
    /var/www/html/sanbao/index.html
    [root@localhost ~]# yum install bind -y        '//以下是配置DNS服务过程,具体内容不再赘述,如果不懂,翻阅我之前博客'
    [root@localhost ~]# vim  /etc/named.conf
    [root@localhost ~]# vim /etc/named.rfc1912.zones
    [root@localhost ~]# cp -p /var/named/named.localhost /var/named/erbao.com.zone
    [root@localhost ~]# vim /var/named/erbao.com.zone
    [root@localhost ~]# cp -p /var/named/erbao.com.zone /var/named/sanbao.com.zone
    [root@localhost ~]# systemctl start named
    

    ●调整nginx.conf配置文件

    server {listen  80;server name www.erbao.com;charset utf-8;access_log logs/www.erbao.access.log;location/ {root /var/www/html/btcom;......
    }
    
  • 这个简单,和通过域名访问即可

3.3:基于端口的虚拟web主机

  • 配置步骤

    修改配置文件

    [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
    server {listen  192.168.9.158:6666;server name 192.1 68.9.1 58:6666;......}
    server {listen  192.1 68.9.158:8888;server name 192.1 68.9.158:8888;......}
    

3.4:基于IP的虚拟web主机

  • 配置步骤

    主机配置两个IP地址

    修改配置文件

    [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
    server {listen  192.168.9.1 58:80;server name 192.168.9.158:80;....}
    server {listen  192.168.9.1 10:80;server name 192.168.9.110:80;....}
    

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

  1. Web服务器群集——Nginx企业级优化

    Nginx企业级优化 Nginx企业级优化 隐藏版本号 修改用户和组 配置网页缓存时间 日志切割 设置连接超时 更改进程数 配置网页压缩 配置防盗链 FPM参数优化 Nginx企业级优化 nginx. ...

  2. 四章——Nginx网站服务(应用——linux防护与群集)

    三期总目录链接 目录 一.Nginx服务 1.安装及运行控制 2.配置文件nginx.conf 2.1全局配置   解释: 2.2  I/O事件配置   解释: 2.3 HTTP配置    解释: 3 ...

  3. 企业常用的Nginx网站服务相关配置

    目录 一,内容概述 Nginx Apache 二,Apache三种工作模式 三,Linux的I/O 四,编译安装Nginx服务 五,认识 Nginx 服务的主配置文件 nginx.conf 六,访问状 ...

  4. Nginx网站服务与LNMP架构部署(详解)

    Nginx网站服务与LNMP架构部署 1.Nginx服务基础 2.编译安装Ngiax 3.Nginx的运行控制 4.配置文件nginx.conf 5.Nginx虚拟主机 6.LNMP架构部署 1.源码 ...

  5. 回顾Nginx网站服务配置

    Nginx简介 Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器.Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.r ...

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

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

  7. 【Nginx网站服务】

    安装Nginx服务 1.先去官网下载软件包 2.关闭防火墙,将安装nginx所需软件包传到/opt目录下 systemctl stop firewalld systemctl disable fire ...

  8. Nginx网站服务(安装nginx、平滑升级nginx、nginx各种访问配置)

    文章目录 一.Nginx概述 1.什么是nginx? 2.Nginx应用场景 3.Nginx应用企业 4.nginx的HTTPD七层代理和四层代理 二.Nginx和Apache的区别 三.编译安装Ng ...

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

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

最新文章

  1. java spring 配置词典_java之spring mvc之拦截器
  2. python中最基本的系列_Python中最基本的10个内容
  3. 能留住女友的,都是王者
  4. relocation R_X86_64_PC32 against symbol lua_newstate can not be used when making a shared object
  5. 小米wifi 苹果驱动安装教程macOS Mojave 10.14,Sierra 10.12测试通过
  6. 电视无线dns服务器,电信电视dns遭到劫持,无线网络DNS被劫持了,怎么解决
  7. python 读excel每行替换_Python使用openpyxl读写excel文件
  8. 岗位、职位、职级、职务的区别
  9. Camera Tuning-高通平台总结
  10. 施耐德PLC初始IP地址计算
  11. RJ45接头接法(转)
  12. 北大核刊最新版2020目录_2021年一建教材出来了?最新版考点速记手册,早备考早通关...
  13. canvas画板之画笔的多种效果
  14. 华为平板 M3(青春版)ROOT教程 华为平板 M3一键root步骤
  15. JS实现右键拖动元素
  16. 一分钟学会看k线图_一分钟怎样学会看k线图(纯干货)散户必备!
  17. python爬虫 模拟登录人人网过程解析
  18. 电脑桌面计算机总是自动打开,电脑开机后自动打开很多软件怎么办
  19. 目标检测中NMS和mAP指标中的的IoU阈值和置信度阈值
  20. Blender UV 打直

热门文章

  1. 小学生计算题软件产品设计
  2. UE4.26水系统和浮力系统
  3. wikioi 1219 骑士游历
  4. 北邮信通导论第三单元智能温控风扇
  5. Jira 史诗指南 (2022)
  6. scrapy 抓取拉钩 ajax
  7. 对Scrollbar实现平时隐藏,滑动时出现
  8. python绿色蓝色代表什么_蓝绿黄车牌识别(Python)
  9. 我不想在做桌面运维了、我想做linux运维、我也要运维高薪
  10. HttpRunner