Nginx快速入门:Nginx应用场景、安装与部署(一)

1. Nginx简介

Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个非常流行的开源 Web 服务器软件。它是由俄罗斯程序员 Igor Sysoev 开发的,最初是为了解决在高并发场景下的C10k 问题(即一个服务器进程只能处理 10,000 个并发连接)的限制。Nginx 以其高性能、稳定性、丰富的功能集、简单的配置以及低资源消耗而被广泛使用。

nginx为什么能支持大并发?
Nginx 使用一个事件驱动的异步非阻塞 I/O 模型,默认使用 epoll 模型,这使得它在处理大量并发连接时表现非常出色。此外,Nginx 还支持worker进程,可以有效地分配资源并提高性能。

nginx的市场占用率
https://w3techs.com/technologies/cross/web_server/ranking
在这里插入图片描述

nginx官网
http://nginx.org

2. Nginx的应用场景

在企业生产中,nginx的主要应用场景在四个方面:

  • 静态资源服务

用来部署图片、css、html等静态资源

  • 代理服务

作为统一入口或代理入口,进行服务转发、负载均衡等

  • 安全控制

做多个服务的入口,将入口部署ssl证书,以此实现服务的加密控制,而不用在每个后台服务部署证书

  • 代理缓存

将动态请求的资源在nginx中进行缓存,下次请求时直接从nginx获取,就不用再走后台服务,以此提高用户的访问速度

后续我们从上述4个方面对nginx的应用进行逐步学习,如果对nginx有兴趣的同学,可以关注专栏,以及时接收到更新通知。

3. Nginx安装

nginx支持2种部署方式:

  • yum工具安装
  • 安装包安装

以下我们分别讲解

3.1 yum工具安装

1、设置nginx yum源
在官网:https://nginx.org/en/linux_packages.html#RHEL/CentOS中有关于yum源的说明
在这里插入图片描述

所以我们可以创建nginx.repo文件,设置官方yum源,也可以用国内厂商,如阿里云的yum源,这里以官网yum源为例

创建nginx.repo文件:

cd /etc/yum.repos.d/
vim nginx.repo

内容

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

如果是mac m1,需要配置arm架构的镜像源,直接执行如下指令即可,就不用再创建nginx.repo了:

wget http://mirrors.aliyun.com/repo/Centos-altarch-7.repo -O /etc/yum.repos.d/CentOS-Base.repo

2、检查yum源配置完成

yum makecache
yum repolist

这里我以mac m1的执行效果为例,可以看到更新了nginx的yum源
在这里插入图片描述

3、安装nginx

yum install nginx -y

在这里插入图片描述
4、查看nginx版本

nginx -V

在这里插入图片描述

5、启动nginx

nginx

关闭nginx指令

# 强制退出,不管有没有正在处理的请求
nginx -s stop
# 优雅退出,等待正在执行的转发执行完成后再退出
nginx -s quit
# 重启
nginx -s reload

通过yum安装的nginx的默认安装路径为:/etc/nginx,日志文件默认路径为:/var/log/nginx

在这里插入图片描述

3.2 安装包安装

1、准备源码包:https://nginx.org/en/download.html

选择对应的版本下载即可
在这里插入图片描述

2、上传到服务器,并解压

tar xf nginx-1.19.7.tar.gz

3、准备依赖环境

yum install -y openssl-devel pcre-devel gcc

4、添加nginx用户

useradd nginx -m -s /sbin/nologin

5、预编译,在nginx目录下执行

–prefix 指定nginx目录
–sbin-path 指定nginx运行目录
–user 运行程序的用户
–group 运行程序的用户组
–with 需要添加的nginx模块

./configure --prefix=/usr/local/nginx --sbin-path=/bin/ --user=nginx --group=nginx --withhttp_ssl_module --withhttp_stub_status_module --withhttp_gzip_static_module

检查是否安装成功

# 检查上一条命令执行结果,如果是0则执行成功,如果不是0则说明执行失败
echo $?

6、安装nginx

make && make install

7、检查nginx版本

./bin/nginx -V

8、启动nginx

./bin/nginx

9、检查nginx端口

netstat -lntup | grep nginx

在这里插入图片描述

4. nginx访问

nginx的默认端口是80, 如果是虚拟机安装的,记得开通虚拟机的80端口,或者关闭防火墙

# 查询22端口是否开放
firewall-cmd --query-port=80/tcp
# 开启端口
firewall-cmd --add-port=80/tcp --permanent
# 开启后重新加载
firewall-cmd --reload

访问虚拟机ip:80端口即可访问到nginx, 因为http默认80端口,所以可以省略端口访问:

在这里插入图片描述

5. 总结

下一节我们将来学习nginx的目录结构及各类配置文件的作用,并配置一个简单的转发带大家先感受下nginx的使用

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

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

相关文章

vue 学习笔记

生命周期 1)定义:vue实例从创建到销毁的过程 2)钩子函数 2.1)beforeCreate:vue实例初始化之前调用,这个阶段vue实例刚刚在内存中创建,此时data和methods这些都没初始化好。 2.2)Cre…

接口定义语言idl——thrift

thritf thrift是facebook开元的接口定义语言IDL(Interface Definition Languge),用于进行跨语言的接口定义从而实现不同语言之间的远程通讯。 不同的开发语言使用idl定义接口都会生成其本身的语法接口,idl忽略的语言的差异从而实现了远程调用。每个idl…

BearPi Std 板从入门到放弃 - 先天神魂篇(9)(RT-Thread DAC->ADC)

简介 RT-Thread DAC->ADC 使用, 就是DAC1输出模拟量, ADC1 读取模拟量转化成电压值, 基于开发板 : Bearpi Std(小熊派标准板)主芯片: STM32L431RCT6串口: Usart1DAC1: PA5, OUT2ADC1: PC2, IN3将板子上的E53 接口, 5 和 6用排线相连, 即实现内部DAC1->ADC1 …

C语言入门(字符串正反连接(fgets()、gets()用法))

目录 ​编辑 题目描述 输入格式 输出格式 样例输入 样例输出 解题思路 题目描述 所给字符串正序和反序连接&#xff0c;形成新串并输出 输入格式 任意字符串&#xff08;长度<50&#xff09; 输出格式 字符串正序和反序连接所成的新字符串 样例输入 123abc 样例输出 12…

【VScode】设置语言为中文

1、下载安装好vscode 2、此时可看到页面为英文&#xff0c;为方便使用可切换为中文 3、键盘按下 ctrlshiftP 4、在输入框内输入configure display language 5、选择中文&#xff0c;restart即可&#xff08;首次会有install安装过程&#xff0c;等待安装成功后重启即可&am…

【玩转Node.JS】=> 之 Buffer(缓冲器)

Node.js 是一个开源、跨平台的 JavaScript 运行时环境 文章目录 Buffer 概念Buffer 的特点创建 BufferBuffer 与字符串的转化 Buffer 的读写 Buffer 概念 Buffer 是一个类似于数组的 对象 &#xff0c;用于表示固定长度的字节序列Buffer 本质是一段内存空间&#xff0c;专门用…

2018年第七届数学建模国际赛小美赛A题空中加油飞行计划解题全过程文档及程序

2018年第七届数学建模国际赛小美赛 A题 空中加油飞行计划 原题再现&#xff1a; 太平洋中部一个小岛上的居民被自然灾害困住。救援人员需要派遣一架轻型飞机运送少量急救药品到岛上&#xff0c;并运送一名重伤者到医疗基地求救。岛上有一个无人值守的简易机场&#xff0c;可以…

css+html横向滚动+固定宽

没什么好说的&#xff0c;快上代码&#xff01; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Do…

2023.12.16 帆软report 官方模板表练习,pymysql

import pymysql# 建立与数据库的连接 conn1 pymysql.connect(host192.168.88.100,port3306,userroot,password123456,dbshopnc_db ) conn2 pymysql.connect(host192.168.88.100,port3306,userroot,password123456,dbbi_db ) # 2.创建游标对象 c1 conn1.cursor() # 3.编写sql…

OpenSSL 3.2.0新增Argon2支持——防GPU暴力攻击

1. 引言 OpenSSL新发布的3.20版本中&#xff0c;引入了一些新特性&#xff0c;包括&#xff1a; post-quantum方法Brainpool曲线QUICArgon2&#xff1a;Argon2 是一种慢哈希函数&#xff0c;在 2015 年获得 Password Hashing Competition 冠军&#xff0c;利用大量内存计算抵…

【面试】Java最新面试题资深开发-微服务篇(1)

问题九&#xff1a;微服务 什么是微服务架构&#xff1f;它与单体架构相比有哪些优势和劣势&#xff1f;解释一下服务发现和服务注册是什么&#xff0c;它们在微服务中的作用是什么&#xff1f;什么是API网关&#xff08;API Gateway&#xff09;&#xff1f;在微服务中它有何…

[学习笔记]批量迁移数据库文件

拷贝数据库文件 首先在本地运行如下SQL语句&#xff0c;查看数据库文件的磁盘位置 SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files默认是保存在C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA目录下 首先复制数据…

mybatis.interceptor.exception.SqLValidateException:Ilegal SQL::......

现象&#xff1a;⬇️ 描述&#xff1a;执行 SQL 没问题&#xff0c;应用代码报错 ⬇️ .mybatis.interceptor.exception.SqLValidateException&#xff1a;Ilegal SQL::SELECT voucherNo FROM voucher ORDER BY CAST(SUBSTRING(voucherNo FROM LOCATE(_, voucherNo) 1) AS U…

C语言KR圣经笔记 4.4作用域规则 4.5头文件 4.6静态变量

4.4 作用域规则 构成一个 C 程序的函数以及外部变量&#xff0c;不需要全都同时编译&#xff1b;程序的源代码可以放在多个源文件中&#xff0c;并且之前编译好的例程可以从库里面加载。需要关心的问题有&#xff1a; 要怎么写声明&#xff0c;才能使变量在编译期间被正确声明…

网络编程『socket套接字 ‖ 简易UDP网络程序』

&#x1f52d;个人主页&#xff1a; 北 海 &#x1f6dc;所属专栏&#xff1a; Linux学习之旅、神奇的网络世界 &#x1f4bb;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 文章目录 &#x1f324;️前言&#x1f326;️正文1.预备知识1.1.IP地址1.2.端口号1.3.端口号与进…

三菱plc学习入门(一,认识三菱plc)

今天就开始对三菱的plc软件入一个门&#xff0c;希望小编的文章对读者和初学者有所帮助&#xff01;欢迎评论指正&#xff0c;废话不多说&#xff0c;下面开始学习。 目录 plc的型号介绍 M表示什么&#xff1f; T表示什么&#xff1f; R表示什么&#xff1f; 为什么三菱没…

Pytorch nn.Linear()的基本用法与原理详解及全连接层简介

主要引用参考&#xff1a; https://blog.csdn.net/zhaohongfei_358/article/details/122797190 https://blog.csdn.net/weixin_43135178/article/details/118735850 nn.Linear的基本定义 nn.Linear定义一个神经网络的线性层&#xff0c;方法签名如下&#xff1a; torch.nn.Li…

得帆信息创始人-张桐,受邀出席 BV百度风投AIGC主题论坛

近日&#xff0c;得帆信息创始人兼CEO张桐&#xff0c;作为百度风投被投代表企业创始人受邀出席“向未来&#xff0c;共成长” BV百度风投AIGC主题论坛。 与包括上海市徐汇区相关部门领导、百度集团相关事业部负责人及代表&#xff0c;以及来自国寿资本、中网投、麦顿投资的投资…

install cuda cudnn tersorRT

# 安装 $ ubuntu-drivers devices$ sudo apt-get install nvidia-driver-470-server # 推荐是server&#xff0c;都可以。#delelt sudo apt --purge remove nvidia-* CUDA Toolkit Archive | NVIDIA Developerhttps://developer.nvidia.com/cuda-toolkit-archive CUDA Toolk…

【计算机网络】TCP协议——1.报文格式详解

前言 上篇讲解了UDP报文格式。TCP和UDP是同层协议&#xff0c;都属于传输层&#xff0c;数据来源于上层——应用层 目录 一. TCP协议概述 二. TCP报文格式 1. 两个问题 2. 确认号和序列号 3. 标志位字段 4. 窗口大小 5. 校验和字段 6. 紧急指针与紧急数据 7. 选项字…