【Nginx】在Linux上如何安装Nginx教程+Nginx基本命令的使用

news2024/10/7 4:23:03

目录

  • 1. Nginx下载
  • 2. 系统准备
  • 3. Nginx安装
    • 3.1 安装方式
    • 3.2 依赖准备
      • 1)GCC编译器
      • 2)PCRE
      • 3)zlib
      • 4)OpenSSL
    • 3.3 源码下载
    • 3.4 解压编译
    • 3.5 Nginx目录结构
    • 3.6 配置环境变量
  • 4. Nginx基本命令
    • 4.1 检查配置文件的正确性
    • 4.2 查看Nginx配置文件
    • 4.3 启动Nginx服务
    • 4.4 停止Nginx服务
    • 4.5 重新加载配置文件


1. Nginx下载

  • Nginx 官网:https://nginx.org

  • Nginx官方源码下载地址:https://nginx.org/download

  • 打开官网并在右侧栏点击【download】。

    image-20221120205823366

  • 笔者是将 Nginx 部署到 Linux 服务器上,我们选取最新的稳定版 1.22.1 下载:

    image-20221120210608003


2. 系统准备


(1) 确认centos的内核

  • 准备一个内核为 2.6 及以上版本的 CentOS 操作系统,因为 linux 2.6 及以上内核才支持 epoll,而 Nginx 需要解决高并发压力问题是需要用到epoll,所以我们需要有这样的版本要求。

  • 我们可以使用 uname -a 命令来查询 linux 的内核版本。

    image-20221120211855034

(2) 确保 CentOS 能联网

ping www.baidu.com

(3) 确认关闭防火墙

  • 这一项的要求仅针对于那些对 Linux 系统的防火墙设置规则不太清楚的。嫌麻烦的可以把防火墙都关闭掉,因为我们此次课程主要的内容是对 Nginx 的学习,把防火墙关闭掉,可以省掉后续 Nginx 学习过程中遇到的诸多问题。

(4) 确认停用selinux

  • selinux (security-enhanced linux),美国安全局对于强制访问控制的实现,在 linux 2.6 内核以后的版本中,selinux 已经成功内核中的一部分。可以说 selinux 是 linux 史上最杰出的新安全子系统之一。虽然有了selinux,我们的系统会更安全,但是对于我们的学习 Nginx 的历程中,会多很多设置,所以这块建议大家将 selinux 进行关闭。

  • sestatus 查看状态:

    sestatus
    

    image-20221120212220146

  • 如果查看不是 disabled 状态,我们可以通过修改配置文件来进行设置,修改 SELINUX=disabled ,然后重启下系统即可生效。

vim /etc/selinux/config

1581419902873


3. Nginx安装


3.1 安装方式

  • Nginx 的安装方式有两种分别是:
    • 通过Nginx源码
      通过Nginx源码简单安装 (1)
      通过Nginx源码复杂安装 (3)
    • 通过yum安装 (2)

3.2 依赖准备

  • 如果通过 Nginx 源码安装需要提前准备的内容:

    image-20221120214226095

1)GCC编译器

  • Nginx 是使用 C 语言编写的程序,因此想要运行 Nginx 就需要安装一个编译工具。GCC 就是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了 C 语言。

  • 使用下面命令来安装:

    yum install -y gcc
    
  • 安装成功后,可以通过 gcc --version 来查看 GCC 是否安装成功。

2)PCRE

  • Nginx 在编译过程中需要使用到 PCRE 库(Perl Compatible Regular Expressoin 兼容正则表达式库),因为在 Nginx 的 Rewrite 模块和 http 核心模块都会使用到 PCRE 正则表达式语法。

  • 可以使用下面命令来进行安装:

    yum install -y pcre pcre-devel
    
  • 安装成功后,可以通过 rpm -qa pcre pcre-devel 来查看是否安装成功

3)zlib

  • zlib 库提供了开发人员的压缩算法,在 Nginx 的各个模块中需要使用 gzip 压缩,所以我们也需要提前安装其库及源代码 zlib 和 zlib-devel 。

  • 可以使用下面命令来进行安装:

    yum install -y zlib zlib-devel
    
  • 安装成功后,可以通过 rpm -qa zlib zlib-devel 来查看是否安装成功。

4)OpenSSL

  • OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包进行安全通信,并且避免被窃听。

  • SSL:Secure Sockets Layer,安全套接协议的缩写,可以在 Internet 上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性。在 Nginx 中,如果服务器需要提供安全网页时就需要用到 OpenSSL 库,所以我们需要对 OpenSSL 的库文件及它的开发安装包进行一个安装。

  • 可以使用下面命令来进行安装:

    yum install -y openssl openssl-devel
    
  • 安装成功后,可以通过 rpm -qa openssl openssl-devel 来查看是否安装成功。

  • 上述命令,一个个来的话比较麻烦,我们也可以通过一条命令来进行全部安装:

    yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
    

3.3 源码下载

  • 选择最新稳定版,复制链接:

    image-20221120214406167


  • 到 Linux 命令行上使用 wget 命令进行下载:

    wget https://nginx.org/download/nginx-1.22.1.tar.gz
    

    image-20221120214542925

  • 可以看到是下载到 pwd 当前工作目录 /root 的:

    image-20221120214621983


3.4 解压编译

  • 创建一个文件夹专门存放 Nginx 的源码压缩包:

    mkdir -p nginx/core
    mv nginx-1.22.1.tar.gz nginx/core
    
  • 进入 Nginx 目录下:

    cd nginx/core
    
  • 解压:

    tar -zxvf nginx-1.22.1.tar.gz
    

    image-20221121112820229

  • 进入解压出来的文件夹:

    cd nginx-1.22.1
    

    image-20221121112923910

  • 创建 Nginx 的安装路径:

    mkdir -p /usr/local/nginx
    
  • 使用 configure 指定安装路径到 /usr/local/nginx

    ./configure --prefix=/usr/local/nginx
    

    image-20221121113559519

  • 然后执行编译和安装:

    make && make install
    
  • 安装好之后有 4 个目录:

    image-20221121113827599


3.5 Nginx目录结构

  • 我们来熟悉一下 Nginx 的目录结构:

    image-20221121114722399

  • conf:存放配置文件。我们要操作的最核心的就是 nginx.conf

  • html:存放静态文件。如 HTML 页面、CSS 样式文件、JS 文件等。

  • logs:存放日志文件。

  • sbin:存放 Nginx 的脚本文件,用于启动 / 停止 Nginx 服务。


3.6 配置环境变量

  • 打开 Linux 系统的环境变量文件:

    vim /etc/profile
    
  • PATH 这一行加上:

    PATH=/usr/local/nginx/sbin:
    

    image-20221121115453952

    :wq 保存退出。

  • 重新加载环境变量文件:

    source /etc/profile
    
  • 测试:查看 Nginx 的版本号:

    nginx -v
    

    image-20221121115824835

    如果能正确显示版本号则说明 Nginx 安装成功且环境变量生效。


4. Nginx基本命令


4.1 检查配置文件的正确性

  • 在启动 Nginx 服务之前,可以先检查一下 conf/nginx.conf 文件配置是否有错误。命令如下:

    nginx -t
    

    image-20221121120212124

    如果返回的结果为 oksuccessful ,则说明配置文件 nginx.conf 没有错误,可以启动 Nginx 服务。


4.2 查看Nginx配置文件

  • 打开 Nginx 的配置文件:

    vim /usr/local/nginx/conf/nginx.conf
    

    image-20221121121136363

  • 我们要开放 80 端口的防火墙:

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    
  • 让防火墙开放立即生效:

    firewall-cmd --reload
    
  • 查看已经开放的端口:

    firewall-cmd --zone=public --list-ports
    

    image-20221121121410955


4.3 启动Nginx服务

  • 输入下面命令启动 Nginx 服务:

    nginx
    

    image-20221121120447920

  • Nginx 是在后台运行的,可以查看是否有 Nginx 相关的进程:

    ps -ef | grep nginx
    

    image-20221121120557034

    可以看到有 1 个 master 进程和 1 个 worker 进程,说明 Nginx 服务已经成功运行了。

  • 我们可以打开浏览器,地址栏输入 server100 这台主机的 IP 地址:

    http://192.168.148.100:80
    

    image-20221121121501798

    能成功访问,说明 Nginx 服务已经启动成功了。

  • 启动完成后,Nginx 的目录结构发生了变化:

    image-20221121122119920

  • 以下划线 _temp 结尾的临时目录,都不用关注。

  • 重点看 logs 日志目录,产生了 2 个文件:

    • access.log 记录的是访问日志。

      image-20221121122426293

    • error.log 记录的是错误日志。

      image-20221121122503422


4.4 停止Nginx服务

  • 输入下面命令停止 Nginx 服务:

    nginx -s stop
    

    image-20221121121843224

  • 查看进程看还有没有 Nginx :

    ps -ef | grep nginx
    

    image-20221121121941818

    已经没有 master 进程和 worker 进程,说明 Nginx 服务已经停止运行了。


4.5 重新加载配置文件

  • 当修改 Nginx 配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:

    nginx -s reload
    
  • 举例,修改配置文件,使得 worker 进程数为 2 :

    vim /usr/local/nginx/conf/nginx.conf
    

    image-20221121122849457

    :wq 保存退出。

  • 重新加载配置文件:

    nginx -s reload
    
  • 查看 Nginx 进程:

    ps -ef | grep nginx
    

    image-20221121123022122

    可以看到 2 个 worker 进程。

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

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

相关文章

qt example plugandpaint 插件 动态库 pnp_extrafiltersd.dll无法加载问题

使用版本windows qt5.12.0vs2015编译器。 运行plugandpaint工程的时候发现pnp_extrafiltersd.dll在load的时候失败了,经过调试,发现qlibrary.cpp中的findPatternUnloaded()的qt_find_pattern()无法通过。(release 版的pnp_extrafilters.dll是…

Java基础深化和提高 ---- 网络编程

网络编程基本概念 计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其 外部设备,通过通信线路连接起来,在网络操作系统,网络管理软 件及网络通信协议的管理和协调下,实现资源共享和信息传递的计 算机系统。 …

Linux系统下文件的压缩与打包

压缩和解压缩 压缩数据或者解压数据: 为什么要移出数据信息前面的 / 目录 -P --absolute-paths 不要从文件名中去除 /1 compress和uncompress 格式 compress Options [file ...]常用选项 -d 解压缩,相当于uncompress-c 结果输出至标准输出…

Spring 事务失效的场景

1、private、final、static 方法 被 Transactional 注解标注的方法的访问权限必须是 public; 被 Transactional 注解标注的方法不能被 final、static 修饰,被标注的方法必须是可覆盖的。这是因为事务底层使用的是 aop,而 aop 使用的是代理模…

嵌入式为何钟爱SourceInsight,主要因为这个功能~

已剪辑自: https://mp.weixin.qq.com/s/F-gafwbZswpnY8EaCz8HxQ 不管是玩单片机还是嵌入式linux,只要是与硬件结合比较紧密的部分目前基本上还是C语言,当然了,不知道以后C语言会不会被取代,即便哪天被某种更加优秀的语言取代&…

m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 MIMO信道容量 平均功率分配的MIMO信道容量:通过Matlab仿真在加性高斯白噪声情况下的SISO (1*1)、SIMO(1*6)、MISO(4*1)、MIMO(3*3)、MIMO(4*4)系统的…

VMware Explore 2022 China,赋能中国企业加速实现云智能

全球领先的企业软件创新者VMware(NYSE: VMW)的年度技术盛会—— VMware Explore 2022 China于11月8日正式举行。本届大会以“探索多云宇宙”为主题,汇聚云计算领域的顶尖技术专家和创新者,通过150多场解决方案演讲、围绕云基础架构…

[附源码]Python计算机毕业设计超市团购平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

JuiceFS 使用效果及注意事项

以某线上集群为例,数据规模:每天写入 5TB,数据储存 30 天,热数据储存一周,节点数量:5 个热节点,15 个冷节点。 采用 JuiceFS 后,热节点保持不变,冷节点从 15 个降到了 1…

[b01lers2020]Life on Mars (难发现的sql注入)

[b01lers2020]Life on Mars 打开界面以后,查看各种都没有提示,果断扫描目录,但也是没获得什么。 到这里只能burp抓个包看看 抓包两个界面发现了get传参,考虑是否存在sql注入 尝试额以后发现只返回了一个1,试一下别的引…

Nginx显示500错误原因和解决方法

文章目录1.背景2.Nginx 常见的几种报错3. 解决500错误1.背景 最近在操作nginx 的时候出现了 Nginx 500 内部错误,在此记录一下原因,项目采用的是前后端分离方式,后端SpringBoot ,前端是Vue 部署到Nginx 下。 2.Nginx 常见的几种…

从水质监测运维工程师转行软件测试,武汉校区小哥哥除了收获10k高薪,还有...

从大学步入社会,每个人都会面临角色和身份的转变,大部分同学对此充满信心和期待,仿佛有用不完的精力、耗不尽的热情。可是社会中的磨砺也让心态慢慢变得成熟,生活、文化等方面的落差显现出来,想要做出改变,…

java项目-第151期ssm文物管理系统_java毕业设计_计算机毕业设计

java项目-第151期ssm文物管理系统_java毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm文物管理系统》 该项目分为2个角色,管理员、用户。 用户可以浏览前台文物信息、论坛交流、文物资讯、留言反馈。 管理员负责登录后台系统&#xff0c…

[附源码]java毕业设计校医院病人跟踪治疗信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

产品质量模型

产品质量模型将系统/软件产品质量属性划分为8个特征:功能性、性能效率、兼容性、易用性、可靠性、安全性、可维护性、可移植性,每个特征由一组相关子特征组成。 衡量一个优秀软件的维度: 产品质量模型只应用于软件产品,或者包含软…

从零开始做一款Unity3D游戏<三>——编写游戏机制

添加跳跃 了解枚举 使用层遮罩 发射投射物 实例化对象 管理游戏对象的创建 游戏管理器 维护玩家属性 get和set属性 精益求精 图形用户界面 胜败条件 使用预编译指定和命令空间 总结 前面一章,我们专注于通过代码来移动玩家和相机,同时了解了…

深入理解计算机系统——Midterm Exam 2012

深入理解计算机系统——Midterm Exam 2012Problem 4 疑问Problem 6 疑问Problem 7 疑问Problem 8 疑问试卷&#xff1a;Midterm Exam 2012 答案&#xff1a;Exam Solutions Problem 4 疑问 第 4 题为第三章内容&#xff0c;这里觉得题目有一步骤写错了&#xff0c;<13> …

让Python可视化事半功倍!

分享一款不错的Matplotlib可视化查询手册&#xff0c;让Python Matplotlib事半功倍&#xff01; 当可视化时&#xff0c;记不清楚图形Marker名称、colormap名称、坐标轴刻度设置、图例设置等等时&#xff0c;稍微扫描一眼该手册&#xff0c;直接YYDS。 下面简单介绍一下这个手册…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.5 变更缓存供应商 Ehcache

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.5 变更缓存供应商 Ehcache5.5.1 缓存实现方案5.5.…

部署支持使用Redis哨兵模式,支持纳管ClickHouse数据库,JumpServer堡垒机v2.28.0发布

2022年11月21日&#xff0c;JumpServer开源堡垒机正式发布v2.28.0版本。在这一版本中&#xff0c;JumpServer的部署支持使用Redis哨兵集群作为后端缓存数据库&#xff0c;从而使系统更加健壮和高可用。操作日志审计方面&#xff0c;新增支持查看资源变更信息。当资源有新增、更…