当前位置: 首页 > news >正文

(1)Nginx简介和安装教程

目录

一、下载

二、报错提醒&环境安装

1、安装gcc编译器

2、安装perl库

3、安装 zlib库

4、也可通过命令进行统一安装

三、编译及安装

四、启动并访问

1、启动

2、访问

3、问题排查

五、安装成系统文件


一、下载

官网地址:nginx news

Nginx官网提供了三个类型的版本:
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版

下载stable版本,并将tar.gz文件导出到:我导入到/opt目录下,并解压此文件。在目录下解压出nginx-1.21.6目录。

tar -zxvf nginx-1.21.6.tar.gz

文件目录介绍

auto
存放的是编译相关的脚本
CHANGES
版本变更记录
CHANGES.ru
俄罗斯文的版本变更记录
conf
nginx 默认的配置文件
configure
nginx 软件的自动脚本程序 , 是一个比较重要的文件,作用如下:
(1)检测环境及根据环境检测结果生成 C 代码
(2)生成编译代码需要的 Makefile 文件
contrib
存放的是几个特殊的脚本文件,其中 README 中对脚本有着详细的说明
html
存放的是 Nginx 自带的两个 html 页面,访问 Nginx 的首页和错误页面
LICENSE
许可证的相关描述文件
man
nginx man 手册
README
Nginx 的阅读指南
src
Nginx 的源代码

二、报错提醒&环境安装

进入nginx目录,执行以下命令

# 将nginx安装在/usr/local/nginx
./configure --prefix=/usr/local/nginx

1、安装gcc编译器

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

不安装gcc会有报错提示:

checking for OS
+ Linux 3.10.0-693.el7.x86_64 x86_64
checking for C compiler ... not found
yum install -y gcc

2、安装perl

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

此时运行编译命令,报错提示:

 需要安装perl库

yum install -y pcre pcre-devel

3、安装 zlib库

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

此时运行编译命令,报错提示:

需要安装zlib库

yum install -y zlib zlib-devel

4、也可通过命令进行统一安装

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

此时运行./configure命令,可正常运行不报错:

运行编译文件前:

运行命令后,生成makefile文件:

生成Makefile文件

三、编译及安装

# 编译
make
# 安装
make install

查看/usr/local目录下,生成nginx目录,nginx安装到此处。

 

四、启动并访问

1、启动

运行你nginx安装目录下sbin文件夹中的nginx命令:

# 启动
./nginx
# 快速停止
./nginx -s stop
# 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s quit
# 重新加载配置
./nginx -s reload

2、访问

此刻通过nginx所在的ip访问,即可访问nginx欢迎页面。

3、问题排查

防火墙问题

机器一般默认开启防火墙(active状态),如果是在另一台机器通过ip访问,有可能访问不到。此时需要关闭防火墙。

# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
# 开启防火墙
systemctl start firewalld

五、安装成系统文件

1、创建服务脚本,可以通过systemctl管理

vi /usr/lib/systemd/system/nginx.service

编辑的文件中,复制以下配置项,里边nginx的路径就是安装路径。

[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target

2、重新加载系统服务

systemctl daemon-reload

注意:在使用命令之前,如果启动过nginx,先将服务停止,或者通过kill命令杀死进程。否则可能报错。

3、相关命令

# 开机启动nginx
systemctl enable nginx.service
# 查看状态
systemctl status nginx.service
# 开启服务
systemctl start nginx.service
# 关闭服务
systemctl stop nginx.service
# 重启服务
systemctl restart nginx.service

相关文章:

  • freertos学习之路1-裸机和rtos的区别
  • 瞧不上alert 老古董?使用alert实现一个精美的弹窗
  • 2023华数杯B题社会稳定预警研究的材料支撑以及解题思路【全网独家社会稳定预警研究材料支撑】
  • 【内网安全-隧道搭建】内网穿透_Ngrok上线(美版、国版二开)
  • 最全面的SpringBoot教程(二)——SpringBoot配置文件
  • 早已有所耳闻的堆排序,你知道如何用C语言实现吗? 【堆排序|C语言版】
  • 某书x-s和web_session
  • C语言--模拟实现库函数strcpy
  • Python爬虫以及数据可视化分析之某站热搜排行榜信息爬取分析
  • stream操作常用API 示例详解
  • GitHub2022年十大热门编程语言榜单
  • 利用STC15输出两路互补SPWM波形
  • 我发现买不起自己出版的书了,这到底是咋回事?
  • 「自定义类型」C语言中的构造数据类型如结构,联合,枚举
  • 【C++修炼之路】C++入门(下)
  • 230. Kth Smallest Element in a BST
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • es6要点
  • GitUp, 你不可错过的秀外慧中的git工具
  • HTTP那些事
  • JavaScript新鲜事·第5期
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • React Native移动开发实战-3-实现页面间的数据传递
  • select2 取值 遍历 设置默认值
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • yii2中session跨域名的问题
  • 不上全站https的网站你们就等着被恶心死吧
  • 记一次和乔布斯合作最难忘的经历
  • 一天一个设计模式之JS实现——适配器模式
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 数据库巡检项
  • 我们雇佣了一只大猴子...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #ubuntu# #git# repository git config --global --add safe.directory
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (NSDate) 时间 (time )比较
  • (七)Java对象在Hibernate持久化层的状态
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • .NET Core 中插件式开发实现
  • .net core控制台应用程序初识
  • .NET MVC第三章、三种传值方式
  • .Net8 Blazor 尝鲜
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • @Async注解的坑,小心
  • @EnableWebMvc介绍和使用详细demo
  • @取消转义
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [ 数据结构 - C++] AVL树原理及实现
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——