nginx的介绍及源码安装

news/2024/4/26 21:48:24/文章来源:https://blog.csdn.net/Gong_yz/article/details/129139029

文章目录

  • 前言
  • 一、nginx介绍
  • 二、nginx应用场合
  • 三、nginx的源码安装过程
    • 1.下载源码包
    • 2.安装依赖性-安装nginx-创建软连接-启动服务-关闭服务
    • 3.创建nginx服务启动脚本
    • 4.本实验---纯代码过程


前言

高可用:高可用(High availability,缩写为 HA),是指系统无中断地执行其功能的能力,代表系统的可用性程度。


一、nginx介绍

传统的 Web 服务器,每个客户端连接作为一个单独的进程或线程处理,需在切换任务时将 CPU 切换到新的任务并创建一个新的运行时上下文,消耗额外的内存和 CPU 时间,当并发请求增加时,服务器响应变慢,从而对性能产生负面影响。
Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是,Nginx 是免费的并可以商业化,配置使用也比较简单。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

二、nginx应用场合

Nginx 作为 web 服务器

Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高 达 50,000 个并发连接数。
正向代理
Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。 正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。
简单一点:通过代理服务器来访问服务器的过程就叫正向代理。
需要在客户端配置代理服务器进行指定网站访问

反向代理

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问。
我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
在这里插入图片描述

负载均衡

增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。

动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速 度。降低原来单个服务器的压力。
在这里插入图片描述

三、nginx的源码安装过程

1.下载源码包

nginx官方源码 http://nginx.org
在这里插入图片描述
在这里插入图片描述

2.安装依赖性-安装nginx-创建软连接-启动服务-关闭服务

在这里插入图片描述禁用调试 禁用调试在这里插入图片描述
源码编译三部曲:进行完解压之后,condigure;make;make install
condigure命令后,生成Makefile文件,Makefile文件中记录后续的编译如何做,包括实验过程中加的参数
make:把C语言编译成二进制程序
编译出来的命令在objs/中,为nginx(占内存大),但是vim auto/cc/gcc中禁用调试后,生成的nginx(占内存小)
make install:把编译的程序安装到指定的程序中
这些进行完之后,我们的nginx已经安装成功,nginx的开启非常简单,直接nginx命令就可以开启,开启之后,我们可以通过查看80端口来检查是否开启,也可以ps进行查看进程
执行命令要在解压的第一级进行
在这里插入图片描述

3.创建nginx服务启动脚本

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

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

4.本实验—纯代码过程

安装依赖性
[root@server1 nginx-1.22.1]# yum install -y gcc pcre-devel openssl-devel安装nginx
[root@server1 ~]# tar zxf nginx-1.22.1.tar.gz
[root@server1 ~]# cd nginx-1.22.1/
[root@server1 nginx-1.22.1]# vim auto/cc/gcc
172      #CFLAGS="$CFLAGS -g"                ##172行内容进行注释
[root@server1 nginx-1.22.1]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
[root@server1 nginx-1.22.1]# make
[root@server1 nginx-1.22.1]# make install创建软连接,方便调用
[root@server1 ~]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/启动服务
[root@server1 ~]# nginx
[root@server1 nginx-1.22.1]# netstat -antlp
Active Internet connections (servers and established)
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17940/nginx: master    ##可查询到包含nginx的信息关闭服务
[root@server1 ~]# nginx -s stop创建服务启动文件
[root@server1 ~]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target[root@server1 ~]# systemctl daemon-reload
[root@server1 ~]# systemctl  enable nginx
[root@server1 ~]# systemctl  start nginx
[root@server1 ~]# systemctl  stop nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_72193.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win7下安装postgreSQL教程

系统环境:Windows 7 旗舰版 64位操作系统 安装版本:postgresql-9.1.4-1-windows-x64 安装步骤: 1、下载系统对应的软件版本; 2、双击“postgresql-9.1.4-1-windows-x64.exe”打开安装窗口; 3、Welcome页,…

图解操作系统

硬件结构 CPU是如何执行程序的? 图灵机的工作方式 图灵机的基本思想:用机器来模拟人们用纸笔进行数学运算的过程,还定义了由计算机的那些部分组成,程序又是如何执行的。 图灵机的基本组成如下: 有一条「纸带」&am…

allure简介

allure介绍allure是一个轻量级,灵活的,支持多语言的测试报告工具多平台的,奢华的report框架可以为dev/qa提供详尽的测试报告、测试步骤、log也可以为管理层提供high level统计报告java语言开发的,支持pytest,javaScript,PHP等可以…

C语言——动态内存管理

目录0. 思维导图:1. 为什么存在动态内存分配2. 动态内存函数介绍2.1 malloc和free2.2 calloc2.3 realloc3. 常见的动态内存错误3.1 对NULL指针的解引用操作3.2 对动态内存开辟的空间越界访问3.3 对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部…

django+celery+ RabbitMQ自定义多个消息队列

关于django celery的使用网上有很多文章,本文就不多做更多的说明。 本文使用版本 python3.8.15 Django3.2.4 celery5.2.7celery.py from __future__ import absolute_import, unicode_literals import os from celery import Celery from kombu import Exchange, …

毕业后想从事软件测试,现在需要学习哪些内容呢

在你选择学习之前,要先考虑一下这个是不是你喜欢的发展方向,而不是只听别人推荐就直接做了选择先了解下软件测试是做什么的以及未来发展前景,最后才是如何自学 软件测试就是在测试这个软件是不是能够完全按照需求运行。软件测试岗再简单点说…

Windows启动docker客户端报错:Hardware assisted virtualization and enabled in the BIOS

报错内容 : 🌟1.在控制面板中点击 启用或关闭Windows功能🌟2.勾选如下复选框🌟3.Windows功能中没有Hyper-V复选框怎么办?(如果有请跳过此步骤)此时不同人的电脑还会出现没有Hyper-V选项的情况1.打开 Windows PowerShell,输入 sys…

如何效率搭建企业流程系统?试试低代码平台吧

编者按:本文介绍了一款可私有化部署的低代码平台,可用于搭建团队流程管理体系,并详细介绍了该平台可实现的流程管理功能。关键词:可视化设计,集成能力,流程审批,流程调试天翎是国内最早从事快速开发平台研发…

Hive内部表与外部表的区别具体说明

目录 1.在/opt/atguigu/目录下,新建两个txt文件 2.在hadoop的web端递归创建一个目录,存储这两个文件 3.查看web端的文件 一、内部表: 1.创建一个内部表,并指定内部表的存储位置 2.查看内部表,内部表中没有数据 …

2023.2 新方案 java代码混淆 java加密 字符串加密

Java字节码可以反编译,特别是创业公司,很好的项目很容易被别人破解反编译,造成很严重的损失,所以本混淆方案能很好的保护源码,而且在不断迭代,增强混淆效果,异常问题处理,达到保护项目的目的: 本次升级包括: 2023年02年19日 : ht-confusion-project-1.8…

PK体系下的教育场景—电子白板的应用

PK体系指基于国产飞腾(Phytium)CPU和麒麟(Kylin)操作系统的技术和产业体系,被誉为“中国架构”,目前基于PK体系的相关软硬件已经广泛用于党政、金融、电信等关基行业。教育信创在国家大战略布局下&#xff…

【技术分享】Web自动化之Selenium安装

Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现人为的错误,也比较费时间。因此,将这些任务自动化,就可以消除人为因素。Selenium 可以…

理解QPSK的实质-I右手正旋-Q左手负旋

正在学习5GNR PDCCH,用到QPSK。作一小结。 引言 我认为像我这样一个死民科,非主流非科班的通信人,理解QPSK的意义,甚至不比欧拉公式,或者是傅里叶变换小。 因为QPSK相较于BPSK,是真正第一次体现了调制的…

模拟默认密码自动生成-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)

【案例5-2】 模拟默认密码自动生成 【案例介绍】 1.任务描述 本例要求编写一个程序,模拟默认密码的自动生成策略,手动输入用户名,根据用户名自动生成默认密码。在生成密码时,将用户名反转即为默认的密码。 2.运行结果 运行结…

Power BI 数据处理介绍(数据初始调整、合并列及查看数据结构)

本系列的文章: 安装流程和示例介绍: 《Power BI windows下载安装流程)》《Power BI 11个必学官方示例数据案例(附下载链接)》 数据导入阶段介绍: 《Power BI 数据导入(SQL Server、MySQL、网页…

C++(42)-FSM-有限状态机

1.FSM 是什么? 一种用来进行对象行为建模的工具,用于描述对象在生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。2.FSM 组成:状态、事件、动作3.FSM类型: 3.1Moore: 输出:当前状态有关…

mysql -学习总结

mysql 详解1、mysql特点2、事务2.1 事务的四大特性 – ACID2.2 并发事务问题2.3 事务的四大隔离级别2.4 事务隔离级别操作sql2.5 事务原理 – LBCC MVCC2.4.1 行的隐藏列2.4.2 ReadView2.4.3 MVCC在四种隔离级别下的区别2.5 undo log、binlog、redo log2.5.1 Undo log2.5.2 bin…

2023年2月22日PMP®项目管理认证课程正式开课

PMP认证是Project Management Institute在全球范围内推出的针对评价个人项目管理知识能力的资格认证体系。国内众多企业已把PMP认证定为项目经理人必须取得的重要资质。 PMP认证是Project Management Institute在全球范围内推出的针对评价个人项目管理知识能力的资格认证体系。…

安装MQTT Server遇到报错“cannot verify mosquitto.org‘s certificate”,该如何解决?

MQTT是基于发布/订阅的轻量级即时通讯协议,很适合用于低带宽、不稳定的网络中进行远程传感器和控制设备通讯等操作中。在我们的软件研发中,也经常使用MQTT协议进行消息通信等。今天来和大家分享一些关于在安装MQTT Server中遇到的疑难问题及解决思路。当…

文献综述怎么写?有哪些准备工作和内容要求

文献综述的撰写是提高研究生论文写作能力的重要途径,是研究生在撰写学术论文和学位论文中必须要涉及的内容,是不可或缺的,写好一篇好的文献综述是存在诸多困难和挑战的,需要掌握一定的技巧和方法。 一、文献综述的写作目的 文献综…