3-1 Nginx编译安装

article/2025/9/25 22:03:52

文章目录

  • Nginx服务
    • 一、Nginx服务基础
      • 1、Nginx简介
      • 2、简述Nginx和Apache的差异
      • 3、编译安装Nginx服务(Nginx-1.12.2)
        • 1)环境准备:关闭防火墙,上传软件包
        • 2)安装依赖环境
        • 3)创建运行用户、组
        • 4)解包并编译、安装
        • 5)让系统识别nginx的操作命令、检查配置文件,启动Nginx服务
        • 6)查看Nginx进程信息、关闭Nginx
        • 7)查看Nginx版本(nginx -v)
        • 8)添加Nginx系统服务
        • 9)验证安装成功
    • 二、配置文件nginx.conf
      • 1、全局配置
      • 2、I/O时间配置
      • 3、HTTP配置
    • 三、访问状态统计
      • 1、查看是否包含状态统计模块
      • 2、修改配置文件,添加stub_status配置代码
      • 3、验证状态统计
    • 四、Nginx访问控制
      • 1、基于授权的访问控制
        • 1)基于授权的访问控制简介
        • 2)基于授权的访问控制步骤

Nginx服务

一、Nginx服务基础

1、Nginx简介

Nginx专为性能优化而开发,优点是稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000~50000个并发请求)。

PS:

Tengine:Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网、天猫商城等得到了很好的检验。(淘宝网拿到了Nginx源代码之后,进行了功能的填充、优化等等,然后提交给Nginx官方,但是由于Nginx官方响应慢甚至不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打包,在遵循GPL的原则上进行了二次开发,于是出现了现在的Tengine版本)

2、简述Nginx和Apache的差异

Nginx是一个甚于事件的Web服务器,Apache是一个基于流程的服务器;
Nginx所有请求都由一个线程处理,Apache单个线程处理单个请求;
Nginx避免子进程的概念,Apache是基于子进程的;
Nginx在内存消耗和连接方面更好,Apache在内存消耗和连接方面一般;
Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件;
Nginx支持热部署,Apache不支持热部署;
Nginx对于静态文件处理具有更高效率,Apache相对一般;
Nginx在反向代理场景具有明显优势,Apache相对一般。

3、编译安装Nginx服务(Nginx-1.12.2)

1)环境准备:关闭防火墙,上传软件包

2)安装依赖环境

Nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件包的开发包,以便提供相应的库和头文件。

3)创建运行用户、组

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

4)解包并编译、安装

解包、./configure配置

make编译、安装

5)让系统识别nginx的操作命令、检查配置文件,启动Nginx服务

6)查看Nginx进程信息、关闭Nginx

7)查看Nginx版本(nginx -v)

8)添加Nginx系统服务

image-20220728121154912

其中vim进入/lib/systemd/system/nginx.service文件添加的相关内容为:

9)验证安装成功

进入浏览器界面输入本机IP地址访问,出现如下界面表示Nginx服务安装成功

二、配置文件nginx.conf

在Nginx服务器的主配置文件/usr/local/nginx/conf/nginx.conf中,包括全局配置、I/O事件配置和HTTP配置这三大块内容,配置语句的格式为“关键字 值;”(末尾以分号表示结束),以“ # ”开始的部分表示注释。

1、全局配置

由各种配置语句组成,不使用特定的界定标记。全局配置部分包括Nginx服务的运行用户、工作进程数、错误日志、PID存放位置等基本信息。

上述配置中,worker——processes表示工作进程的数量。若服务器有多块CPU或者使用多核处理器,可以参考CPU核心总数来指定工作进程数,如设为8;如果网站访问量需求并不大,一般设为1就够用了。其他三项均已有注释,表示采用默认设置。例如,Nginx的运行用户实际是编译时指定的Nginx,若未编译时未指定则默认为nobody。

2、I/O时间配置

使用“events { }”界定标记,用来指定Nginx进程的I/O响应模型、每个进程的连接数等设置。对于2.6及以上版本的内核,建议使用epoll模型以提高性能;每个进程的连接数应根据实际需要来设定,一般在10000以下(默认为1024)。

若工作进程数为8,每个进程处理4096个连接,则允许Nginx正常提供服务的连接数已超过三万个(4098*8=32768),当然具体还要看服务器硬件、网络宽带等物理条件的性能表现。

3、HTTP配置

使用“http { }"界定标记,包括访问日志、HTTP端口、网页目录、默认字符集、保持连接,以及后面要讲到的虚拟Web主机、PHP解析等一系列设置,其中大部分配置语句都包含在子界定标记”server{ }“内。

上述配置中,listen语句允许同时限定IP地址,采用"IP地址:端口"的形式;root语句用来设置特定访问位置(如”location /“表示根目录)的网页文档路径,默认为Nginx安装目录下的html/子目录,根据需要可以改为/var/www/html等其他路径。

三、访问状态统计

1、查看是否包含状态统计模块

Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况,配置编译参数时可添加–with-http_stub_status_module来启用该模块,可以使用命令/usr/local/nginx/sbin/nginx -V来查看已安装的Nginx是否包含HTTP_STUB_STATUS模块。

2、修改配置文件,添加stub_status配置代码

要使用Nginx的状态统计功能,除了启用内建模块外,还需要修改nginx.conf配置文件,指定访问位置并添加stub_status配置代码。

3、验证状态统计

配置完成后,执行命令”systemctl restart nginx"重启nginx,在浏览器中访问虚拟机(Nginx服务器)的/status网站位置,可以看到如下图信息:

四、Nginx访问控制

1、基于授权的访问控制

1)基于授权的访问控制简介

Nginx与Apache一样可以实现基于用户授权的访问控制,当客户端需要访问相应的网站或者目录时,要求用户输入用户名和密码才能正常访问,配置步骤与Apache基本一致。

①生成用户密码认证文件

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

③重启服务,访问测试

2)基于授权的访问控制步骤

①使用htpasswd生成用户认证文件

出现如上错误“未找到命令”可以使用yum安装httpd-tools软件包,再执行操作“httpd -c /usr/local/nginx/passwd.db test"

在/usr/local/nginx/目录下生成了passwd.db认证文件,用户名是fp,并在passwd.db文件中生成用户和密码的密文。

②修改密码文件权限为400,将所有者改为nginx,设置nginx的运行用户能够读取

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

件,用户名是fp,并在passwd.db文件中生成用户和密码的密文。

②修改密码文件权限为400,将所有者改为nginx,设置nginx的运行用户能够读取

[外链图片转存中…(img-IkRGVrhM-1659055440493)]

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


http://chatgpt.dhexx.cn/article/BBtWUja9.shtml

相关文章

Nginx编译安装与配置

目录 引言 一、Nignx简介 二、简述Nginx和Apache的差异 三、编译安装Nginx服务 四、新版本升级 五、添加 Nginx 系统服务 六、基于域名的 Nginx 虚拟主机 七、基于IP 的 Nginx 虚拟主机 八、基于端口的 Nginx 虚拟主机 九、Nginx服务的主配置文件 (1&am…

Nginx编译安装

1. 停止原有的web服务器:端口默认均是80 2. 添加普通用户账号运行nginx useradd -M -s /sbin/nologin nginx3. 解压并安装nginx tar xf nginx-1.8.1.tar.gzcd ngxin-1.8.1/./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_stub_stat…

Nginx网站服务

文章目录 一.编译安装Nginx服务(一)认识Nginx服务的主配置文件(二)日志格式设定(三)访问状态统计配置(四)基于授权的访问控制(五)基于客户端的访问控制 二.域名主机的访问(一)基于域名的Nginx虚拟主机(二)基于IP的Nginx虚拟主机(三…

Nginx的安装---编译安装

编译安装 1、安装编译环境 yum -y install gcc gcc-c make ncurses ncurses-devel2、安装pcre软件包(使nginx支持http rewrite模块) yum install -y pcre pcre-devel3、安装openssl-devel(使nginx支持ssl) yum install -y ope…

2021年计算机保研面试题

准备计算机保研面试题 注意点 大家都是第一次~~~ 没有保研经验,所以担心会被问专业课知识相关的东西。但是结合博主自己的经历,本人双非保到某985,过程中问的最多的是项目相关问题,并不会设计太多专业课问题,问的话也…

linux 网络 sk_buff结构

一、简介 sk_buff的意思是socket buffer&#xff0c;这是Linux网络子系统中的核心数据结构。 定义在 <include/linux/skbuff.h> 中&#xff0c;它由许多变量组成&#xff0c;目标就是满足所有网络协议的需要。 sk_buff 在不同的网络层被使用&#xff08;MAC 或其他在 L…

梳理50道经典计算机网络面试题

我梳理了50道计算机网络面试题&#xff0c;每一道题目都特别经典&#xff0c;大厂也非常喜欢问。相信大家看完&#xff0c;会有新的收获滴~ 1. 说说HTTP常用的状态码及其含义&#xff1f; 思路: 这道面试题主要考察候选人&#xff0c;是否掌握HTTP状态码这个基础知识点。 不管是…

24 张图总结 TCP 基础知识,看完我飘了。

TCP 是一种面向连接的单播协议&#xff0c;在 TCP 中&#xff0c;并不存在多播、广播的这种行为&#xff0c;因为 TCP 报文段中能明确发送方和接受方的 IP 地址。 在发送数据前&#xff0c;相互通信的双方&#xff08;即发送方和接受方&#xff09;需要建立一条连接&#xff0…

【随机过程】19 - 随机过程的线性预测问题

随机过程的线性预测问题 文章目录 随机过程的线性预测问题1. 随机过程的估计问题概述1.1 预测问题1.2 内插问题1.3 滤波问题 2. 随机过程的可预测性2.1 新息过程2.1.1 信息过程的定义2.1.2 估计的子空间分解2.1.3 新息过程的性质 2.2 随机过程的正则性与奇异性2.2.1 正则性和奇…

计算机网络传输层测试

一 单项选择题 1.下列选项中&#xff0c;&#xff08; D &#xff09;是用于传输层寻址的。 A.MAC地址 B.IPv4地址 C.IPv6地址 D.端口 解析&#xff1a;传输层对主机上的不同网络进程进行了编号&#xff0c;用不同的数字区分不同的网络进程。传输层标识网络进程的数字称为传…

上岸阿里了

大家好&#xff0c;我是老王&#xff0c;收到来自近期成功上岸的粉丝分享的阿里面试真题&#xff0c;分享给大家参考下&#xff0c;希望大家看完成功面试上大厂Offer。 01.薪资体系 新技术用到的也很多&#xff0c;也是很多人想要进入的大厂备选之一。 阿里的薪资结构&#xf…

2W字!梳理50道经典计算机网络面试题(收藏版)

1. 说说HTTP常用的状态码及其含义&#xff1f; 思路: 这道面试题主要考察候选人&#xff0c;是否掌握HTTP状态码这个基础知识点。 不管是不是面试需要&#xff0c;我们都要知道&#xff0c;日常开发中的这几个状态码的含义哈&#xff1a; 2. HTTP 常用的请求方式&#xff0c;区…

Netty 单机百万连接测试

1.Netty框架简介 1.1.Netty简介 netty是jboss提供的一个java开源框架&#xff0c;netty提供异步的、事件驱动的网络应用程序框架和工具&#xff0c;用以快速开发高性能、高可用性的网络服务器和客户端程序。也就是说netty是一个基于nio的编程框架&#xff0c;使用netty可以快…

LPCNET: 通过线性预测改进神经语音合成

LPCNET: 通过线性预测改进神经语音合成 摘要索引词 -- 神经音频合成 参数编码 WaveRNN 1.导言2.WAVERNN3.LPCNET3.1条件参数3.2 预加重和量化3.3 线性预测3.4 输出层3.5 稀疏矩阵3.6 嵌入和代数简化3.7 从概率分布中抽取样本3.8 训练噪声注入 4. 评估4.1 复杂度4.2 实验设置4.3…

TCP拥塞机制学习

TCP拥塞机制学习 写在前面 很早就想总结一下tcp方面的知识了&#xff0c;心动不如行动&#xff0c;这一块面试重点&#xff0c;而其也是coder的必修课。 一、TCP头部报文格式 了解任何一个协议都要从它的协议报文开始&#xff0c;我们先看一下他的格式和一些基本概念。 TC…

3 万字 + 100 张图带你彻底搞懂 TCP 面试题(强烈建议收藏)

大家好&#xff0c;我是小林&#xff0c;一个专为大家图解的工具人。 不管面试 Java 、C/C、Python 等开发岗位&#xff0c; TCP 的知识点可以说是必问的了。 任 TCP 虐我千百遍&#xff0c;我仍待 TCP 如初恋。 过去不会没关系&#xff0c;今天就让我们来消除这份恐惧&…

计算机网络常见知识点总结

网络 1.IP地址分类 网络为全为1的是广播地址&#xff0c;所以要减一&#xff0c;因此127减一为126 A类IP地址 地址范围1.0.0.0到127.255.255.255。可用的A类网络有126个 B类IP地址地址范围128.0.0.0到191.255.255.255。可用的B类网络有16382个 C类IP地址范围从192.0.0.0到223.…

手撸架构,网络 面试36问

TCP 链接 三次握手&#xff1a; 首先服务器端处于LISTEN状态。当客户端想要建立连接时&#xff0c;他将发送一个SYN包&#xff0c;序列号假如为u。客户端进入SYN_SENT状态。当服务器端收到了这个SYN包&#xff0c;如果服务器同意建立连接&#xff0c;他将发送一个SYN&#xf…

Java面试必背八股文[11]:计算机网络

OSI与TCP/IP各层的结构&#xff1f; 答:OSI分层 &#xff08;7层&#xff09;&#xff1a;物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 TCP/IP分层&#xff08;4层&#xff09;&#xff1a;网络接口层、 网际层、运输层、 应用层。 五层协议 &#xff08;…

深入理解Linux网络——内核是如何发送网络包的

文章目录 一、相关实际问题二、网络包发送过程总览三、网卡启动准备四、数据从用户进程到网卡的详细过程1&#xff09;系统调用实现2&#xff09;传输层处理1. 传输层拷贝2. 传输层发送 3&#xff09;网络层发送处理4&#xff09;邻居子系统5&#xff09;网络设备子系统6&#…