【Linux】nginx基础篇 -- 介绍及yum安装nginx

news2024/11/18 8:11:50

👨‍🎓博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • nginx 介绍
    • 在线自动生成nginx配置文件
  • nginx企业用它干什么
  • nginx的运行架构
  • master主进程原理
  • worker工作进程原理
  • nginx常用模块介绍
  • nginx的安装形式
    • yum安装nginx
    • nginx管理命令
    • yum 安装 nginx 所有默认路径
    • 通过官网yum仓库默认安装的nginx.conf配置文件
  • nginx配置模块详解
  • 相关文章

nginx 介绍

在这里插入图片描述

在线自动生成nginx配置文件

https://www.digitalocean.com/community/tools/nginx?global.app.lang=zhCN

可以自由选择所需的应用,生成nginx配置作为参考。

根据你的业务需求,自动生成复杂的nginx配置文件,提供你作为参考,非常好用

nginx企业用它干什么

1.提供静态页面展示,网页服务
2.提供多个网站、多个域名的网页服务

3.提供反向代理服务(结合动态应用程序)

4.提供简单资源下载服务(密码认证) ftp服务

5.用户行为分析(日志功能)

nginx的运行架构

nginx运行后,有多少个干活的工人,多进程,调用多个cpu去解析用户的请求

在linux中进行多进程开发,开辟多个进程,调用多个cpu,当然也会消耗更多的机器资源,内存,cpu资源,给服务器带来更大的压力
不是说进程越多,干活越快,合理的分配,才能达到最高效的处理效率

关于nginx的优化设置,nginx默认应该启动多少个进程去工作呢?
默认就是根据cpu的核数去设置进程数即可。

master主进程原理

包工头进程,管理nginx的数据,创建worker工作进程。

1. 启动时检查nginx.conf是否正确,语法是否有误;
2. 根据配置文件的参数创建、且监控worker进程的数量和状态;
3. 监听socket,接收client发起的请求,然后worker竞争抢夺链接,获胜的可以处理且响应请求。
4. 接收我们发送的管理nginx进程的信号,并且将信号通知到worker进程。
5. 如果我们发送了reload命令,则读取新配置文件,创建新的worker进程,结束旧的worker进程。

worker工作进程原理

1. 实际处理client网络请求的是worker
2. master根据nginx.conf决定worker的数量
3. 有client用户请求到达时,worker之间进程竞争,获胜者和client建立连接且处理用户请求;
4. 接收用户请求后,若需要代理转发给后端,则后端处理完毕后接收处理结果,再响应给用户
5. 接收并处理master发来的进程信号,如启动、重启、重载、停止。

nginx常用模块介绍

nginx常用模块官网:https://nginx.org/en/docs/
下面讲解的常用模块,官网都有解析是使用方法。

ngx_http_access_module		# 四层基于IP的访问控制,可以通过匹配客户端源IP地址进行限制,简单来说就是允许限制对某些客户端地址的访问。
ngx_http_auth_basic_module	# 允许通过使用“HTTP 基本身份验证”协议验证用户名和密码来限制对资源的访问。
ngx_http_stub_status_module	# 状态统计模块。
ngx_http_gzip_module		# 文件的压缩功能,是一个使用“gzip”方法压缩响应的过滤器。这通常有助于将传输数据的大小减少一半甚至更多。
ngx_http_gzip_static_module	# 静态压缩模块,允许发送带有“ ”文件扩展名的预压缩文件,.gz而不是常规文件。
ngx_http_ssl_module			# 为HTTPS提供必要的支持
ngx_http_rewrite_module		# 重定向功能,解析和处理rewrite请求,用于使用 PCRE 正则表达式更改请求 URI、返回重定向和有条件选择配置。
ngx_http_referer_module		# 防盗链功能,用于阻止“Referer”标头字段中包含无效值的请求访问站点。
ngx_http_proxy_module		# 将客户端的请求以http协议转发至指定服务器进行处理。
ngx_stream_proxy_module		# tcp负载,将客户端的请求以tcp协议转发至指定服务器处理,允许通过 TCP、UDP (1.9.13) 和 UNIX 域套接字代理数据流。
ngx_http_fastcgi_module		# 将客户端对php的请求以fastcgi协议转发至指定服务器理。
ngx_http_uwsgi_module		# 将客户端对Python的请求以uwsgi协议转发至指定服务器处理。
ngx_http_headers_module		# 允许将“Expires”和“Cache-Control”标头字段以及任意字段添加到响应标头。
ngx_http_upstream_module	# 用于定义可由proxy_pass、 fastcgi_pass、 uwsgi_pass、 scgi_pass、 memcached_pa​​ss和 grpc_pass指令引用的服务器组。负载均衡模块,提供服务器分组转发、权重分配、状态监测、调度算法等高级功能。
ngx_stream_upstream_module	# 用于定义可由proxy_pass 指令引用的服务器组。
ngx_http_fastcgi_module		# 允许将请求传递到 FastCGI 服务器。
ngx_http_flv_module			# 为 Flash 视频 (FLV) 文件提供伪流服务器端支持。

nginx的安装形式

  • 源代码编译安装,优点:
    • 版本,可以获取官网最新的软件包,甚至最新测试版,都可以直接编译安装
    • 还有稳定版本
    • 自由定义,安装路径自由定义,
    • 自由定义第三方插件
    • 缺点:安装步骤繁琐,耗时太长,看你要装多少个模块,编译添加的模块多,安装的就更久
  • rpm安装
    • 得提前准备好nginx本身的rpm包,以及相关依赖的rpm包
    • 用于离线安装nginx的环境
  • yum安装,你会用哪些形式的仓库?
    • 阿里云第三方仓库(centos-base.repo,epel.repo)
      • 这个其实都不靠谱。
    • 自建yum仓库(得提前准备好nginx本身的rpm包,以及相关依赖的rpm包)
    • nginx官网仓库(获取官网最新稳定版的yum源仓库)
      • yum一键安装,省心省事,版本也是有一定的保障的,rpm的安全性也是有保障的
官网yum仓库
源代码编译
离线的rpm安装(yum 自建仓库)

yum安装nginx

# 1. 配置官网yum源,一键安装即可

cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[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
EOF

# 2.清空yum源,安装最新版nginx
yum clean all

yum install nginx -y

# 3.查看PATH变量
[root@iz0jlfqv8fyt7iuxoec4clz ~]# which nginx
/usr/sbin/nginx
[root@iz0jlfqv8fyt7iuxoec4clz ~]# ll /usr/sbin/nginx
-rwxr-xr-x 1 root root 1399232 Apr 12 01:22 /usr/sbin/nginx

# 4.查看nginx版本
[root@iz0jlfqv8fyt7iuxoec4clz ~]# nginx -V
nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

nginx管理命令

nginx 		 		# 默认是直接运行启动,前提是当前机器没运行nginx	
nginx -t  			# 检测nginx.conf语法
nginx -s reload  	# 重新读取nginx.conf
nginx -s stop   	# 停止nginx  kill -15 nginx



# systemctl去管理nginx启动之类的。



#启动nginx,查看nginx状态,reload重新加载nginx配置, restart重启nginx服务,查看进程id号,关闭nginx
[root@iz0jlfqv8fyt7iuxoec4clz ~]# systemctl start nginx

[root@iz0jlfqv8fyt7iuxoec4clz ~]# systemctl status nginx

[root@iz0jlfqv8fyt7iuxoec4clz ~]# systemctl reload nginx  # worker变化,master不变

[root@iz0jlfqv8fyt7iuxoec4clz ~]# systemctl restart nginx  # 整个nginx进程变化

[root@iz0jlfqv8fyt7iuxoec4clz ~]# systemctl stop nginx

yum 安装 nginx 所有默认路径

[root@iz0jlfqv8fyt7iuxoec4clz ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/mime.types
/etc/nginx/modules
/etc/nginx/nginx.conf		# nginx的配置文件路径
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.24.0
/usr/share/doc/nginx-1.24.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx

通过官网yum仓库默认安装的nginx.conf配置文件

[root@iz0jlfqv8fyt7iuxoec4clz ~]# cat /etc/nginx/nginx.conf

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

nginx配置模块详解

这里的图是二进制安装默认的配置,yum安装的与二进制安装的nginx,配置会有差异,但整体大概的说明都是一样的。

在这里插入图片描述

主要区域讲解:

在这里插入图片描述

相关文章

文章标题文章连接
【Linux】nginx基础篇 – 介绍及yum安装nginxhttps://liucy.blog.csdn.net/article/details/132450258
【Linux】环境下部署Nginx服务 - 二进制部署方式https://liucy.blog.csdn.net/article/details/132145067
nginx配置负载均衡–实战项目(适用于轮询、加权轮询、ip_hash)https://liucy.blog.csdn.net/article/details/132279414
nginx快速部署一个网站服务 + 多域名 + 多端口https://liucy.blog.csdn.net/article/details/132454654

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1024程序节特辑:一文读懂小程序支付流程

小程序支付流程 概述前置准备登录流程调用wx.login()向微信服务器发送请求 支付流程调用wx.requestPayment()部分后台处理逻辑支付功能要求 支付流程面试题 主页传送门&#xff1a;&#x1f4c0; 传送 概述 小程序支付是由微信支付推出的一种便捷支付方式&#xff0c;通过扫码…

快速实现 RPC 微服务:使用 go-micro 从零开始

大家好&#xff0c;我是木川 本文将演示如何从 0 到 1 使用 go-micro 框架实现 RPC 微服务&#xff0c;包括服务端和客户端&#xff0c;客户端发送一个名字到服务端&#xff0c;服务端返回问候语。 一、创建项目 创建项目目录&#xff0c;使用 go mod 初始化 mkdir goexamples …

前端课后作业

2023.10.20 1、用列表实现如下效果 2、用表格实现如下效果 3、用表单实现如下效果 &#xff08;学到16集完成&#xff09;

阿里云10M带宽服务器价格、下载和上传速度限制说明

阿里云服务器10M带宽价格表年付85折&#xff0c;10M带宽一年优惠价5355元&#xff0c;10M带宽下载速度1280KB/秒&#xff0c;即1.25M/秒&#xff0c;阿腾云atengyun.com分享腾讯云服务器10M公网带宽优惠价格、流量价格、上传速度和下载速度限制&#xff1a; 目录 云服务器10M…

【小笔记】为什么语义相似度要用余弦相似度而不用欧式距离?

【学而不思则罔&#xff0c;思而不学则殆】 2023.10.20 语义相似度 相似文本&#xff0c;可以是语义上相似&#xff0c;可以是字符串相似&#xff0c;因此文本相似度包含了语义相似度。 传统的基于统计的文本相似度计算方法&#xff0c;如词频&#xff0c;词出现与否来表示文…

C51--简易报警器设计

硬件清单&#xff1a; C52单片机 震动传感器模块 433M无线发射接受模块 继电器模块 高功率喇叭 杜邦线 振动传感器控制灯&#xff1a; 如何知道是否发生震动&#xff1f;震动后的信号表示又是什么&#xff1f; 振动传感器模块产生震动&#xff0c;输出低电平&#xff0c;绿色指…

苹果cms模板MXone V10.6魔改版短视大气海报样式

苹果cms模板MXone V10.6魔改版短视大气海报样式 安装模板教程说明&#xff1a; 1、将模板压缩包上传到苹果cms程序/template下解压 2、网站板选择mxone 模板目录填写html 3、网站模板选择好之后一定要先访问前台&#xff0c;然后再进入后台设置 4、主题后台地址&#xff1…

1024,毕业后工作的五个月

入职 一晃一下又到了1024&#xff0c;彼时已经成为打工人在写分享了&#xff0c;自己已经搬砖5个月了&#xff0c;总感觉4月份拍毕业照、去川渝毕业旅行看plmm还是在昨天&#xff0c;但五月下旬入职到现在已经5个月了。给大家简单的share一下工作和生活。 在5月初光速毁约ks入…

1024节日快乐!

1024程序员节&#xff1a;向英勇的程序员们致敬&#xff01; 嘿&#xff0c;大家好&#xff01;听说今天是个特殊的日子&#xff0c;是程序员的节日&#xff01;咱们可得好好庆祝一下&#xff01; 我想先跟大家说声谢谢。是你们的辛勤工作&#xff0c;才让我们的APP、网站、电…

论坛介绍 | COSCon'23 开源治理(G)

众多开源爱好者翘首期盼的开源盛会&#xff1a;第八届中国开源年会&#xff08;COSCon23&#xff09;将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01;各位新老朋友们&#xff0c;欢迎到成都&a…

从鸟瞰世界:倾斜摄影技术的地理信息之美

在当今数字时代&#xff0c;地理信息和地图数据的需求与应用已经成为我们生活的一部分。这些数据不仅在导航、地图应用中发挥着关键作用&#xff0c;还在城市规划、环境保护、农业、建筑和许多其他领域中至关重要。而倾斜摄影技术与可视化技术的结合&#xff0c;正为地理信息的…

如何学习深度学习

文章目录 &#x1f31f; 如何学习深度学习&#x1f34a; 基础数学知识&#x1f34a; 编程基础知识&#x1f34a; 深度学习基础知识&#x1f34a; 学习资源&#x1f34a; 总结 &#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO…

深入理解JNI

文章目录 1.JNI1.1 JNI实现步骤1.2 NDK1.3 CMakeList.txt1.4 HelloWorld 2. native-lib.cpp2.1 调用java静态方法2.2 调用java实例方法2.3 创建引用 3.CMake4.JNI使用全解4.1 JNI 类型签名介绍4.2 abi4.3 so文件 1.JNI 1.1 JNI实现步骤 JNI&#xff1a;全名 Java Native Inte…

软件测试(四)黑盒,白盒,灰盒测试

黑盒测试 测试人员不关注代码内部实现&#xff0c;通过一些科学的手段&#xff0c;向测试系统发起测试数据&#xff0c;关注执行结果是否和预期结果一直 白盒测试 测试人员关注代码内部实现&#xff0c;它一般用来分析程序的内部结构&#xff0c;针对程序的逻辑结构来设计测…

Zookeeper 和 Kafka 工作原理及如何搭建 Zookeeper集群 + Kafka集群

目录 1 Zookeeper 1.1 Zookeeper 定义 1.2 Zookeeper 工作机制 1.3 Zookeeper 特点 1.4 Zookeeper 数据结构 1.5 Zookeeper 应用场景 1.6 Zookeeper 选举机制 2 部署 Zookeeper 集群 2.1 安装前准备 2.2 安装 Zookeeper 3 Kafka 3.1 为什么需要消息队列&#xff08;…

Linux-git

文章目录 git简介git常用命令配置初始化仓库将文件添加到暂存区将暂存区文件加入版本库对比工作区某文件和暂存区中的区别将暂存区的文件移除但git仍管理将文件移除暂存区并且git不再管理查看版本库切换到之前的版本恢复文件持久化 云端将本地的项目推送到远程仓库将远程仓库的…

使用RestSharp和C#编写程序

以下是一个使用RestSharp和C#编写的爬虫程序&#xff0c;用于爬取www.zhihu.com上的视频。此程序使用了https://www.duoip.cn/get_proxy来获取代理IP。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks…

关于利用webase-front节点控制台一键导出的java项目解析

搭建区块链系统和管理平台分别用的的fisco、webase。 关于我们在利用java开发DApp(去中心化引用)&#xff0c;与区块链系统交互&#xff0c;可以用: 1.webase前置服务给开发者提供的api&#xff1a;我们在搭建好fisco链之后&#xff0c;在搭一个webase-front服务&#xff0c;我…

Ceph存储

数据存储类型 块存储 存储设备与客户端主机是 一对一 的关系&#xff0c;块存储设备只能被一个主机挂载使用&#xff0c;数据以块为单位进行存储的&#xff0c;典型代表&#xff1a;硬盘 文件存储 一对多&#xff0c;能被多个主机同时挂载/传输使用&#xff0c;数据以文件的…

新年学新语言Go之四

一、前言 任何编程语言都有类型系统&#xff0c;类型系统解决了数据的存取问题&#xff0c;它决定了使用这个类型需要开辟内存空间大小以及数据是如何存放的&#xff0c;也解决如何读出数据&#xff0c;因为在内存中相同二进制值不同类型的含义是不一样的&#xff0c;关于Go基…