Nginx_入门

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
Nginx_入门


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、Nginx概述
  • 二、Nginx的应用场景
  • 三、安装Nginx
    • 环境准备
    • 安装依赖库
    • 下载/安装Nginx
      • 普通安装Nginx
      • Docker安装Nginx
        • 部署命令
  • 四、目录介绍
    • conf目录
    • html目录
    • logs目录
    • sbin目录
  • 五、Nginx启停服务
    • 启动
    • 停止服务
    • 重启
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

欢迎来到 Nginx 的世界!Nginx 是一款强大的 Web 服务器和反向代理服务器,被广泛应用于互联网上的众多网站和应用程序。
在这个博客中,我将带领你踏上学习 Nginx 的旅程,从入门开始,逐步深入了解这个令人惊叹的工具。
无论你是一个开发者、系统管理员,还是对 Web 服务器有兴趣的技术爱好者,Nginx 都能为你提供强大的功能和灵活性。通过学习 Nginx,你将能够更好地理解如何构建高性能、可靠的 Web 应用程序。
在接下来的博客文章中,我将为你介绍 Nginx 的基本概念、安装和配置方法,以及如何优化 Nginx 以获得更好的性能。
我希望这个博客能够成为你学习 Nginx 的起点,并为你提供有用的资源和实践经验。让我们一起探索 Nginx 的世界,释放其强大的潜力!如果你有任何问题或建议,请随时留言评论。现在,就让我们开始这段精彩的 Nginx 学习之旅吧!


提示:以下是本篇文章正文内容,下面案例可供参考

一、Nginx概述

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。Nginx 专为性能优化而开发,使用异步非阻塞事件驱动模型。

说了这么多,大家可能还是有点迷糊。举个例子,Nginx 服务器就像是一个交通指挥员,它负责接收和处理来自客户端(比如你的浏览器)的请求,并将这些请求转发给相应的服务器(比如网站的后端服务器)。
当你在浏览器中输入一个网址时,Nginx 服务器会接收到这个请求,并根据预设的规则,将其转发给合适的服务器。它可以根据请求的类型、URL、服务器的负载等因素来决定将请求发送到哪个服务器。

二、Nginx的应用场景

  • HTTP服务器:Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。
  • 反向代理:反向代理应该是Nginx使用最多的功能了,反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
  • 负载均衡:Nginx 支持多种负载均衡策略,如轮询、加权轮询、IP 哈希等,可以将请求均匀地分配给多个后端服务器,提高系统的并发处理能力。
  • 动静分离:动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

三、安装Nginx

环境准备

  • 确认网络可用
  • 确定yum可用
  • 确定关闭防火墙
  • 确认关闭SELinux

安装依赖库

yum -y install gcc make automake pcre-devel zlib zlib-devel openssl openssl-devel
  • gcc:编译依赖gcc环境
  • pcre:PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl 兼容的正则表达式库。
  • zlib:zlib库提供了很多种压缩和解压缩的方式,Nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
  • Openssl:OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

下载/安装Nginx

普通安装Nginx

1.官网下载Nginx安装包,并上传到虚拟机,点击下载。
2.创建存放源文件的文件夹
首先在目录/opt下创建apps目录,用于存放源文件以及解压后的文件
3.上传Nginx到步骤1创建的目录下
4.解压 Nginx

[root@node1 apps]# pwd
/opt/apps
[root@node1 apps]# ls
Nginx-1.20.1.tar.gz
[root@node1 apps]# tar -zxvf Nginx-1.20.1.tar.gz
[root@node1 apps]# cd  Nginx-1.20.1

5.进入到 Nginx 解压包目录/opt/apps/Nginx-1.20.1 目录中,查看 Nginx 的目录。各目录作用如下:

  • auto:存放 Nginx 自动安装的相关文件
  • conf:存放 Nginx 服务器配置文件
  • configure:命令,用于对即将安装的软件的配置,完成 makefile 编译文件的生成
  • contrib:存放由其他机构贡献的文档材料
  • html:存放 Nginx 欢迎页面
  • man:manual,手册,存放 Nginx 帮助文档
  • src:存放 Nginx 源码

6.使用 configure 命令可以生成makefile文件。

[root@node1 Nginx-1.20.1]# mkdir -p /var/temp/nginx/client
[root@node1 Nginx-1.20.1]# pwd
/opt/apps/nginx-1.20.1
[root@node1 Nginx-1.20.1]# ./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--with-http_ssl_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi

安装编译参数如下:

编译选项作用
-prefix=/etc/Nginx主目录
–sbin-path=/usr/sbin/Nginx执行命令
–modules-path=/usr/lib64/Nginx/modulesNginx模块
–conf-path=/etc/Nginx/Nginx.confNginx配置文件
–error-log-path=/var/log/Nginx/error.log错误日志
–http-log-path=/var/log/Nginx/access.log访问日志
–pid-path=/var/run/Nginx.pidNginx启动的pid
–lock-path=/var/run/Nginx.lockNginx的锁
–http-client-body-temp-path=/var/cache/Nginx/client_temp执行对应模块时,Nginx锁保留的临时性文件
–http-proxy-temp-path=/var/cache/Nginx/proxy_temp指定作为代理服务器时,服务器响应报文的临时存放路径
–http-fastcgi-temp-path=/var/cache/Nginx/fastcgi_temp指定了在运行 FastCGI 时临时文件的存储路径
–http-uwsgi-temp-path=/var/cache/Nginx/uwsgi_temp指定了在运行 UWSGI(Unicorn Web Server Gateway Interface)时临时文件的存储路径
–http-scgi-temp-path=/var/cache/Nginx/scgi_temp
–user=Nginx设定Nginx进程启动的用户
–group=Nginx设定Nginx进程启动的用户组
–with-cc-opt=parameters设置额外的参数将被添加到CFLAGS变量
–with-ld-opt=parameters设置附加的参数,连接系统库

7.编译安装

make && make install

Docker安装Nginx

1.拉取官方的Nginx镜像

[root@localhost ~]# docker pull nginx

2.使用 Nginx 默认的配置来启动一个 Nginx 容器实例

[root@localhost ~]# docker run --rm --name nginx-test -p 8080:80 -d nginx

参数的含义如下: --rm:容器终止运行后,自动删除容器文件。 --name nginx-test:容器的名字叫做Nginx-test,名字自己定义. -p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口 -d:容器启动后,在后台运行
3.创建本地目录,用于存放Nginx的相关文件信息

mkdir -p /opt/nginx/www  /opt/nginx/conf

4.拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器ID可以查看 docker ps 命令输入中的第一列

docker cp 358354f206fd:/etc/nginx/nginx.conf /home/nginx/conf/
部署命令

使用该命令就不需要再映射本地目录到Nginx容器

docker run --rm -d -p 8081:80 --name nginx-test-web \-v /opt/nginx/www:/usr/share/nginx/html \-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \nginx

参数说明:

  • –rm:容器终止运行后,自动删除容器文件。
  • -p 8081:80: 将容器的 80 端口映射到主机的 8082 端口.
  • –name nginx-test-web:将容器命名为 Nginx-test-web
  • -v /home/Nginx/www:/usr/share/Nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/Nginx/html。
  • -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

四、目录介绍

conf目录

Nginx所有配置文件的目录,极其重要。在该目录中包含一个Nginx.conf配置文件。

html目录

Nginx的默认站点目录。

logs目录

存放Nginx的日志文件

sbin目录

Nginx命令的目录,如Nginx的启动命令。

五、Nginx启停服务

启动

./Nginx -h

参数说明:

  • -v : 打印版本号
  • -V : 打印版本号和配置
  • -t:测试配置正确性并退出
  • -q:测试配置时只显示错误
  • -s:向主进程发送信号
  • -p:指定Nginx服务器路径前缀
  • -c: 指定Nginx配置文件路径
  • -g: 指定Nginx附加配置文件路径

停止服务

快速停止,快速停止是指立即停止当前Nginx服务正在处理的所有网络请求,马上丢弃连接,停止工作。

Nginx -s stop   # 快速关闭

平缓停止,平缓停止是指允许Nginx服务将当前正在处理的网络请求处理完成,但不再接收新的请求,之后关闭连接,停止工作。

Nginx -s quit   # 等待工作进程处理完成后关闭

重启

更改Nginx服务器的配置和加入新模块后,如果希望当前的Nginx服务应用新的配置或使新模块生效,就需要重启Nginx服务。当然我们可以先关闭Nginx服务,然后使用新的Nginx配置文件重启服务。

Nginx -s reload  # 向主进程发送信号,重新加载配置文件,热重启
Nginx -s reopen # 重启 Nginx

总结

提示:这里对文章进行总结:

希望这篇博客对你了解 Nginx 有所帮助!如果你有任何问题或想要进一步讨论,欢迎在评论中留言。

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

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

相关文章

GPU与SSD间的P2P DMA访问机制

基于PCIe(Peripheral Component Interconnect Express)总线连接CPU、独立GPU和NVMe SSD的系统架构。 在该架构中,PCIe Swicth支持GPU与SSD之间快速的点对点直接内存访问(peer-to-peer, p2p DMA)。通常情况下&#xff0…

Qt-QFileDialog保存文件及获取带扩展名的文件名

正确用法 QFileDialog dialog(this, "Save File", QDir::currentPath(), "Text Files (.txt)"); dialog.setAcceptMode(QFileDialog::AcceptSave); dialog.setDefaultSuffix("txt"); // << if (!dialog.exec())return; QString fileName …

latex添加图片以及引用的实例教程

原理 在 LaTeX 中插入图片&#xff0c;通常是使用 \includegraphics 命令&#xff0c;它是由 graphicx 包提供的。首先&#xff0c;确保在文档的前言部分&#xff08;\documentclass 之后和 \begin{document} 之前&#xff09;包含了 graphicx 包。 下面是一个基本的例子来展…

全志D1-H芯片Tengine支持

简介 ​ Tengine 是 OPEN AI LAB 推出的边缘 AI 计算框架&#xff0c;致力于解决 AIoT 产业链碎片化问题&#xff0c;加速 AI 产业化落地。Tengine 为了解决 AIoT 应用落地问题&#xff0c;重点关注嵌入式设备上的边缘 AI 计算推理&#xff0c;为海量 AIoT 应用和设备提供高性…

(学习日记)2024.01.20:通用工具库stdlib.h里好玩的函数

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

LeetCode 2765.最长交替子数组:O(n)的做法(两次遍历)

【LetMeFly】2765.最长交替子数组&#xff1a;O(n)的做法&#xff08;两次遍历&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/longest-alternating-subarray/ 给你一个下标从 0 开始的整数数组 nums 。如果 nums 中长度为 m 的子数组 s 满足以下条件&a…

开始学习vue2基础篇(指令)

一、 内容渲染指令 > {{}} 模板渲染&#xff08;模板引擎&#xff09; 1. {{数据绑定}} 2. {{简单计算}} 3. {{简单逻辑运算}}&#xff08;三元运算&#xff09; 4. {{做简单 js 判断}} 注意&#xff1a;不能写语句、不能解析 html 渲染、不能放在在属性身上 > v-…

使用Flink的所有pom文件

Flink中所有的pom文件中的索引 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xs…

[小程序]页面的构建

一、视图容器组件 ①View 视图区域组件&#xff0c;类似于HTML中的div&#xff0c;可以用来按块实现页面布局效果&#xff0c;具体实例如下&#xff1a; <view class"dock"><view>A</view><view>B</view><view>C</view> &…

大数据基础设施搭建 - Hbase

文章目录 一、解压压缩包二、配置环境变量三、修改配置文件3.1 修改hbase-env.sh3.2 修改hbase-site.xml3.3 修改regionservers 四、解决HBase和Hadoop的log4j兼容性问题&#xff0c;使用Hadoop的jar包五、HBase远程发送到其他集群六、启动七、停止八、基本操作8.1 进入Hbase客…

常用界面设计组件 —— 按钮组件、布局组件

2.4 按钮组件2.5 布局组件 2.4 按钮组件 QPushButton、QRadioButton 、QCheckBox都从 QAbstractButton&#xff0c;拥有一些共同的属性&#xff0c;如下图所 示&#xff1a; 图标使用setIcon()来设置&#xff0c;文本可以在构造函数或通过 setText()来设置。 可以使用 isCheck…

docker运行nginx不生效

docker运行nginx镜像时&#xff0c;设置端口映射&#xff0c;则只有该映射端口起作用&#xff0c;nginx配置的其他端口无效 监听端口 server {listen 8082;server_name ip地址;} server {listen 8083;server_name ip地址;}docker运行命令 docker run --name n…

探索人工智能的发展与影响

人工智能&#xff08;AI&#xff09;的快速发展正在深刻地改变着我们的生活和社会。从聊天机器人到自动驾驶汽车&#xff0c;AI的应用正日益广泛&#xff0c;为我们带来了前所未有的便利和创新。本文将深入探讨人工智能的发展历程、应用领域以及对社会的影响。 1. 人工智能的定…

【深度学习PyTorch简介】7.Load and run model predictions 加载和运行模型预测

Load and run model predictions 加载和运行模型预测 Load the model 加载模型 在本单元中&#xff0c;我们将了解如何加载模型及其持久参数状态和推理模型预测。 %matplotlib inline import torch import onnxruntime from torch import nn import torch.onnx as onnx impo…

CSS高级技巧导读

1&#xff0c;精灵图 1.1 为什么需要精灵图&#xff1f; 目的&#xff1a;为了有效地减少服务器接收和发送请求的次数&#xff0c;提高页面的加载速度 核心原理&#xff1a;将网页中的一些小背景图像整合到一张大图中&#xff0c;这样服务器只需要一次请求就可以了 1.2 精灵…

【WPF.NET开发】克隆打印机

本文内容 大多数企业有时会购买多台同一型号的打印机。 通常&#xff0c;这些打印机都安装了几乎相同的配置设置。 安装每台打印机既费时又容易出错。 使用 Microsoft .NET Framework 公开的 System.Printing.IndexedProperties 命名空间和 InstallPrintQueue 类可以立即安装从…

化妆-护肤品选购

粉底液 在下颚线涂抹 选择贴近肤色的 在选购时不能立即选购&#xff0c;而是涂抹后逛个街吃个饭&#xff0c;再看持久程度和服帖程度&#xff0c;所有粉底液都会脱妆 品牌 韩系品牌 VDL 韩系品牌偏光泽感(因为韩国人皮肤偏好) 所以一般会带有”亮泽“ “光感” 中国品牌 …

查看并解析当前jdk的垃圾收集器

概述&#xff1a;复习的时候&#xff0c;学看一下。 命令&#xff1a; -XX:PrintCommandLineFlags 打开idea&#xff0c;配置jvm 把上面命令输入jvm options中即可。 举例代码 这个代码的解析&#xff0c;我上篇文章有写&#xff0c;这个跟本文没有任何关系&#xff1a; …

C++--enum--枚举

C/C枚举类型&#xff1a; 不限定作用域的枚举类型 关键字&#xff1a;enum 声明枚举类型&#xff0c;然后可以用枚举类型来定义变量(如同结构体)&#xff1a; enum Color{white,black,yellow}; {注意分号} Color color_type; color_type 变量的值只限于枚举类型Color中的值 枚…

深度学习|RCNNFast-RCNN

1.RCNN 2014年提出R-CNN网络&#xff0c;该网络不再使用暴力穷举的方法&#xff0c;而是使用候选区域方法&#xff08;region proposal method&#xff09;创建目标检测的区域来完成目标检测的任务&#xff0c;R-CNN是以深度神经网络为基础的目标检测的模型 &#xff0c;以R-C…