• nginx网站服务


    nginx网站服务:

    nginx是一款高性能而且轻量级的web服务软件

    提供静态页面服务。就是一个纯文本格式的文件,一般都是以.html或.htm格式为结尾的文件

    特点:

    稳定性一般(nginx的bug很多,更新迭代很快)

    httpd 俗称阿帕奇 在国内用的比较少,国外主要是用阿帕奇

    nginx是开源的(免费)

    阿里就是基于nginx做的二次开发:tengine

    对于系统的资源消耗非常低,它也是http协议(单台物理服务器可以支持并发量3w-5w台,在工作中一般设为2w个左右,保存服务器稳定),因此相对于阿帕奇更好

    nginx的主要功能:

    1.处理静态页面,可以直接提供静态页面的文件服务。html、图片、动画也可以,能够高效的处理并且响应静态页面的请求。(静态页面)

    2.反向代理,可以通过反向代理实现负载均衡和高可用

    3.处理动态请求,nginx一般是把动态请求转发到后端服务器,由专门处理动态请求的服务器进行处理。然后动态请求处理完之后,还是nginx来响应给客户端

    4.支持加密的http协议,也就是https

    5.支持虚拟主机

    6.支持URL的重定向功能,也就是页面跳转

    7.nginx自带缓存机制,可以缓存静态页面的内容,减轻后端服务器的压力

    8.nginx自带日志记录,访问日志(哪些主机访问了本机的nginx服务),报错日志(1.访问失败的记录,2.配置文件错误3.nginx启动失败的记录)

    9.可以支持模块扩展。可以加载不同的模块和自定义配置

    10.低内存消耗:例如1w个keep-alive连接保持,只占3M不到的内存

    11.支持热部署,也就是可以不停机更新配置文件与升级版本

    nginx的工作中应用场景:

    1.静态页面服务

    2.转发动态请求

    3.反向代理负载均衡

    4.缓存服务

    5.连接保持和会话保持

    安装nginx的步骤

    1.下载安装包,我们进行编译安装

    ps:我是安装在opt目录下的

    2.下载相关依赖关系

    yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel

    3.创建运行用户、组 (Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)

    useradd -M -s /sbin/nologin nginx

    4、解压

    tar -xf nginx-1.22.0.tar.gz

    5.进入刚刚解压的目录中

    cd nginx-1.22.0/

    6.将下面代码复制暂停到目录下回车。PS:请把中文删除,中文是解释对应命令的意思

    ./configure --prefix=/usr/local/nginx \ --user=nginx \

    #指定用户名

    --group=nginx \

    #指定所在组

    --with-http_ssl_module \

    #支持http协议

    --with-http_v2_module \

    #支持http2.0协议

    --with-http_realip_module \

    #支持从客户端获取真实ip

    --with-http_stub_status_module \

    #支持访问nginx状态信息的方法

    --with-http_gzip_static_module \

    #支持对页面进行压缩的功能

    --with-pcre \

    #支持pcre库

    --with-stream \

    #可以支持stream模块,也就是可以支持四层代理

    --with-stream_ssl_module \

    #可以支持加密传输的四层代理

    --with-stream_realip_module

    #运行nginx从代理(proxy) 协议的头部获取客户端的真实ip地址

    6.make && make install

    7.cd /usr/local

    8.chown -R nginx.nginx nginx/ #修改权限

    cd nginx/

    ll

    conf:nginx的配置文件,所有的配置文件都在该目录中。nginx.conf

    html: 保存的是nginx的web文件,也就是工作目录。也可以更改。50x的web文件是默认的报错展示页面

    logs:日志文件。PS:位置可以改

    sbin: nginx的二进制启动的脚本文件

    9.在nginx目录下

    ln -s /usr/local/nginx/sbin/nginx /usr/sbin #让系统识别nginx的操作命令

    10.nginx -t #检测配置文件语法和配置项是否正确

    11.vim /lib/systemd/system/nginx.service

    12.将下面内容复制进去,然后保存退出

    [Unit]

    Description=nginx - high performance web server

    Documentation=http://nginx.org/en/docs/

    After=network-online.target remote-fs.target nss-lookup.target

    Wants=network-online.target

    [Service]

    Type=forking

    PIDFile=/usr/local/nginx/run/nginx.pid

    #注意文件位置,如果不对 启动不了

    ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

    #注意启动文件位置

    ExecReload=/bin/kill -s HUP $MAINPID

    ExecStop=/bin/kill -s TERM $MAINPID

    [Install]

    WantedBy=multi-user.target

    ps:名词解释

    ExecReload=/bin/kill -s HUP $MAINPID

    kill -s HUP $MAINPID

    HUP:重新启动服务

    ExecStop=/bin/kill -s TERM $MAINPID

    kill -s TERM $MAINPID

    TERM :关闭服务

    13.mkdir run #创建一个run目录

    14.cd conf/

    15.编译 vim nginx.conf 文件

    pid /usr/local/nginx/run/nginx.pid;

    16.重启服务

    systemctl daemon-reload

    systemctl restart nginx

    17.cd .. #进入nginx目录下

    cd html/ #进入html目录下

    18.vim index.html

    编译文件随便写内容,这里的内容如果是中文会显示乱码,很正常,这是在另外的配置文件修改的

    然后验证,前提防火墙和安全机制都关闭了

    这边实际上已经安装完成并验证成功

    nginx命令解释:

    nginx -t:检测配置文件语法和配置项是否正确

    nginx -v:显示nginx的版本

    nginx -V:即显示版本又显示配置项

    nginx -signal:向nginx的主程序发送信号(stop restart reload)

    nginx除了编译安装还有yum安装

    yum安装:编译安装和yum不要同时使用。也就是两个服务不要即yum安装又编译安装,系统默认识别的是yum安装

    yum -y install epel-release #yum安装必须先安装这个

    yum -y install nginx #然后才安装nginx

    面试题:

    nginx的配置文件:

    nginx.conf配置文件当中的内容:

    PS:上图events内容,默认是1024个如果想要改大需要配置下面的文件

    PS:这是在文件的最底下添加内容

    PS:之前安装实验乱码的情况,可以修改上图的字符集来完成

    总结一下配置文件:

    全局模块

    events模块:配置连接数

    http模块:代理地址,日志,虚拟主机等等都在http中

    一个http模块中,可以有多个server块,server模块只能在http模块中。

    location模块只能写在server模块当中,一个server模块可以有多个location(匹配工作目录)

    如何更改默认工作路径

    下面是root与alias的区别与实验:

    root路径在默认html中实验:

    在默认html目录下创建test目录与之对应的index.html。页面内容

    在index.html文件中添加一下内容

    可以在浏览器查看结果

    下面是用使用root在opt目录下实验,也就是更改默认路径

    创建要访问的页面内容

    下面是用alias实验:

    因为我们是访问同一个test页面内容,之前已经创建过了,这边就不需要再重新创建了,注意,访问的页面没有时,一定要创建,不然实验没有意义

    总结:

    root和alias:指定工作目录的区别 root是拼接 /opt/html/test/index.html

    alias是精确指定:

    /test URI

    /opt/html/test

    两者区别

    root可以在server模块中,但是alias只能在location中

    alias匹配的uri 是/必须要以/结尾,root不需要

    实验题:

    123访问test用root

    456访问动画用户alias

    实验题:

    实现访问状态统计:

    首先先进入配置文件

    添加status

    检查是否有错误,没有错误就重启服务

    在浏览器访问

    名词解释

    Active connections: 1 #表示当前活动的连接数 三个数字:已经处理的连接数,成功tcp握手次数 已处理的请求数

    server accepts handled requests 16 16 16 Reading: 0 Writing: 1 Waiting: 0 reading: 表示当前正在读取客户端请求的连接数。服务器正在从客户端读取数据。 writing: 表示服务器正在讲响应的数据发送给客户端 waiting: 有连接处于空闲状态。等待新的连接

    实验题:

    实现基于客户端访问控制:

    模拟两台客户端。此时两台客户端都已经关闭防火墙和安全机制

    先实验一下,两台客户端是否可以正常访问

    这里可以看到访问没有问题

    配置文件

    实验结果

    实验题:

    如何使用域名的nginx:

    配置文件

    创建访问目录

    创建访问的内容

    配置hosts文件

    实验结果:ps想要访问需要提前配置hosts文件,不然访问不了

    衍生实验:

    基于ip地址的虚拟主机

    实验结果

    基于端口

    实验结果

    实验题:

    需要授权:

    首先先安装工具

    yum -y install httpd-tools

    我这里已经安装过了

    创建一个用户密码

    配置权限

    配置文件

    重启配置文件

    实验结果

    总结:

    核心nginx配置文件

    全局:主要是用户和工作进程

    events:连接数

    http:虚拟主机和页面配置,代理

    http模块当中可以有多个server多个虚拟主机,一个虚拟主机就是一个网站

    server只能在http模块中,排除stream,它可以配置server

    location只能在server模块中,一个server可以有多个location

    location的作用:匹配URI

    root:拼接

    alias:精确

  • 相关阅读:
    Python配置文件使用教程
    RK3568笔记一:RKNN开发环境搭建
    对于Mac OS10.1x合适安装的Typora版本合集
    MySQL8.0优化 - SQL执行流程
    element ui el-table分页多选功能
    电力电子的一些知识
    .stream().map与.stream().flatMap的使用
    支持导入 Eolink 插件,别小看这个开源 API 管理工具了
    CVE-2017-12615 Tomcat远程命令执行漏洞
    华为云鲲鹏架构docker部署2048小游戏
  • 原文地址:https://blog.csdn.net/m0_75000405/article/details/134395913