• Nginx网站服务



    一、Nginx概述

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

    • 稳定性高
    • 系统资源消耗低
    • 对HTTP并发连接的处理能力
      • 单台物理服务器可支持30000~50000个并发请求

    二、编译安装Nginx服务

    1.关闭防火墙、关闭核心防护

    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    
    • 1
    • 2
    • 3

    2.准备nginx软件包,并解压

    tar zxvf nginx-1.15.9.tar.gz
    unzip nginx-module-vts-master.zip    //此软件包为监控nginx的模块
    mv nginx-module-vts-master /usr/local/         //移动到/usr/local/下
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    在这里插入图片描述

    3.安装依赖包

    yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel make
    
    • 1

    在这里插入图片描述

    4.创建运行用户

    useradd -M -s /sbin/nologin nginx
    
    • 1

    5.进行编译安装

    ./configure \
    > --prefix=/usr/local/nginx \
    > --user=nginx \
    > --group=nginx \
    > --add-module=/usr/local/nginx-module-vts-master/
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    make && make install
    
    • 1

    在这里插入图片描述

    6.优化路径

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

    请添加图片描述

    7.添加nginx系统服务

    vim /lib/systemd/system/nginx.service
    chmod 754 /lib/systemd/system/nginx.service
    
    • 1
    • 2

    在这里插入图片描述

    8.验证

    systemctl start nginx     //开启服务
    
    • 1

    在这里插入图片描述

    三、Nginx配置文件

    Nginx配置文件管控的层次结构
    1.gloabl:全局生效的配置
    2.协议 http { }
    Nginx主要控制的就是HTTP层面
    3. server { }
    具体匹配进入nginx的相关配置
    4.location { }
    主要用于匹配URL并基于匹配到的URL做相关处理

    vim /usr/local/nginx/conf/nginx.conf
    
    • 1

    1.全局配置

    #user nobody       //默认运行/管理用户
    work_processes 1      //工作进程运行数量,可配置成服务器内核数*下,如果访问量不大,一般设为1
    #error_log  logs/error.log;						//错误日志文件路径/级别
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    #pid   logs/nginx.pid          //pid文件位置
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    2.I/O事件

    events {              #events:事件
        use epoll;        #epoll是一种抗高并发的参数之一
        worker_connections  1024;     #每个进程最多处理的连接数量
    }
    
    进程处理的连接数量有两种修改方式,以下是临时修改
    #如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。
    #在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
    #可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    在这里插入图片描述

    3.HTTP配置

    http {											#http协议的配置
        #文件扩展名与文件类型映射表
        include       mime.types;		
        #默认文件类型			
        default_type  application/octet-stream;		
    
       ##日志格式设置
       #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
        ##访问日志位置
        #access_log  logs/access.log  main;
        ##支持文件发送(下载)
        sendfile        on;
        ##此选项允许或禁止使用socke的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用
        #tcp_nopush     on;
         ##连接保持超时时间,单位是秒
        #keepalive_timeout  0;
        keepalive_timeout  65;
     
        ##gzip模块设置,设置是否开启gzip压缩输出
        #gzip  on;
        ##Web 服务的监听配置
    server {
        ##监听地址及端口
        listen 80; 
        ##站点域名,可以有多个,用空格隔开
        server_name www.lic.com;
     
        ##网页的默认字符集
        charset utf-8;
     
        ##根目录配置
        location / {
        
            ##网站根目录的位置/usr/local/nginx/html
            root html;
        
            ##默认首页文件名
            index index.html index.htm;
        }
        ##内部错误的反馈页面
        error_page 500 502 503 504 /50x.html;
        ##错误页面配置
        location = /50x.html {
            root html;
        }
    }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    server模块
    在这里插入图片描述
    支持php及跳转的配置
    在这里插入图片描述
    虚拟主机的配置
    在这里插入图片描述
    HTTPS的配置(SSL加密)
    在这里插入图片描述

    四、访问控制

    基于客户端的访问控制

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

    vim /usr/local/nginx/conf/nginx.conf    //进入到nginx的配置文件进行修改
    
    • 1

    在这里插入图片描述

    systemctl restart nginx     //重新启动nginx
    
    • 1

    结果
    IP为192.168.226.128的客户端无法访问
    在这里插入图片描述
    IP不为192.168.226.128的客户端可以访问
    在这里插入图片描述

    五、虚拟主机

    1.基于域名的Nginx虚拟主机

    1.添加域名解析

    echo "192.168.226.131 www.ngs.com www.sen.com" >> /etc/hosts
    
    • 1

    在这里插入图片描述
    2.准备虚拟站点网页文档
    创建两个网页文档,配置nginx时指向这两个文档路径

    mkdir -p /var/www/html/ngs
    mkdir -p /var/www/html/sen
    echo "

    this is ngs

    " > /var/www/html/ngs/index.html echo "

    this is sen

    " > /var/www/html/sen/index.html
    • 1
    • 2
    • 3
    • 4

    3.修改nginx配置文件
    在这里插入图片描述
    在这里插入图片描述

    测试
    输入www.ngs.com出现this is ngs
    在这里插入图片描述
    输入www.sen.com出现this is sen
    在这里插入图片描述

    2.基于端口的虚拟主机

    1.创建一个80端口的网页文件和一个8080端口的网页文件

    mkdir -p /var/www/html/ngs80
    mkdir -p /var/www/html/ngs8080
    echo "

    this is ngs80

    " > /var/www/html/ngs80/index.html echo "

    this is ngs8080/h1>" > /var/www/html/ngs8080/index.html
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    2.修改nginx配置文件
    80端口的配置
    在这里插入图片描述
    8080端口的配置
    在这里插入图片描述
    测试
    在这里插入图片描述
    在这里插入图片描述

    3.基于不同IP访问

    1.添加192.168.226.100的映射

    vim /etc/hosts
    
    • 1

    在这里插入图片描述
    2.创建192.168.226.100的网站首页文件

    mkdir /var/www/html/ngs100
    vim /var/www/html ngs100/index.heml
    
    • 1
    • 2

    3.临时添加网卡

    ifconfig ens33:0 192.168.226.100 netmask 255.255.255.0
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    4.修改nginx配置文件
    在这里插入图片描述
    在这里插入图片描述

    测试
    在这里插入图片描述
    在这里插入图片描述


  • 相关阅读:
    改进乌鸦算法求解单目标优化问题
    闲鱼自动化软件——筛选/发送系统 V22已经测试完毕
    JVM之垃圾回收器一
    React+Electron快速创建并打包成桌面应用
    由Redis Cluster集群引发的对几种算法的思考
    网络编程“惊群“问题
    LeetCode:2316. 统计无向图中无法互相到达点对数(C++)
    测试理论: 一个总结和梳理
    鲈鱼的面试题库+答案
    【文献整理】基于深度强化学习的知识图谱推理研究
  • 原文地址:https://blog.csdn.net/S314118142/article/details/126530686