保姆级 | Nginx编译安装

0x00 前言

        Nginx 是一个 HTTP 和反向代理服务器, 邮件代理服务器, 和通用 TCP/UDP 代理服务器, 最初由伊戈尔·西索耶夫(Igor Sysoev)撰写。采用编译安装可以根据自身需要自定义配置,让服务器有更高的安全性和稳定性。

        

        

0x01 环境说明

HECS(云耀云服务器)
Ubuntu 22.04
Nginx 1.22.1
GCC 11.3.0
Make 4.3
PCRE 8.39
OpenSSL 3.0.2
zlib 1.2.11
GD 2.3.0

        

        

0x02 准备工作

        在 Nginx 编译安装之前,我们先要提前做一些准备工作。需要安装 GCC Make PCRE OpenSSL zlib GD 环境依赖项。 

        

更新镜像源。

apt-get update

        

安装 GCC 库。

apt-get install gcc

        

安装 make 库。

apt-get install make

        

安装 PCRE 库。

apt-get install libpcre3 libpcre3-dev

        

安装 OpenSSL 库。

apt-get install openssl

        

安装 zlib 库。

apt-get install zlib1g zlib1g-dev

        

安装 GD 库。

apt-get install libgd-dev libgdal-dev

        

        

0x03 Nginx下载

        需要注意的是,使用编译安装时间会比较久。但是编译安装更适合生产环境,所以我个人更倾向于使用编译安装。

        

在开始之前我们需要先创建 nginx 用户,之所以这么做主要是为了降低服务器风险,让 nginx 以最小的权限运行。

useradd -s /sbin/nologin nginx

        

访问 nginx 官网。

https://nginx.org/en/download.html

        

下载 Nginx1.22.1 。

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

        

解压 Nginx1.22.1 。

tar -zxvf nginx-1.22.1.tar.gz

        

        

0x04 运行配置脚本

打开解压缩后的 nginx-1.22.1 文件。

cd nginx-1.22.1

        

运行 ./configure 配置脚本,这个脚本主要用来检查 nginx-1.22.1 环境所需的依赖项并配置编译选项。

./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-mail \
--with-pcre \
--with-stream \
--with-threads \
--with-file-aio \
--with-http_v2_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_ssl_module \
--with-http_sub_module \
--with-http_dav_module \
--with-mail_ssl_module \
--with-http_slice_module \
--with-stream_ssl_module \
--with-http_realip_module \
--with-http_gunzip_module \
--with-http_addition_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_auth_request_module \
--with-http_image_filter_module

关于配置命令的使用说明:

命令说明
--prefix=/usr/local/nginx指定安装目录为/usr/local/nginx。
--user=nginx指定运行Nginx的用户为nginx。
--group=nginx指定运行Nginx的用户组为nginx。
--with-mail启用邮件模块,用于处理邮件代理。
--with-pcre启用PCRE模块,用于支持正则表达式。
--with-stream启用Stream模块,用于支持TCP和UDP代理。
--with-threads启用Threads模块,用于支持多线程操作。
--with-file-aio启用File AIO模块,用于支持异步文件IO。
--with-http_v2_module启用HTTP/2模块,用于支持HTTP/2协议。
--with-http_flv_module启用FLV模块,用于支持FLV流媒体。
--with-http_mp4_module启用MP4模块,用于支持MP4流媒体。
--with-http_ssl_module启用SSL模块,用于支持HTTPS。
--with-http_sub_module启用Substitution模块,用于支持内容替换。
--with-http_dav_module启用DAV模块,用于支持WebDAV。
--with-mail_ssl_module启用Mail SSL模块,用于支持安全邮件传输。
--with-http_slice_module启用Slice模块,用于支持分片上传。
--with-stream_ssl_module启用Stream SSL模块,用于支持安全TCP和UDP代理。
--with-http_realip_module启用Real IP模块,用于获取真实的客户端IP地址。
--with-http_gunzip_module启用Gzip模块,用于支持压缩和解压缩。
--with-http_addition_module启用Addition模块,用于支持响应内容的追加。
--with-http_secure_link_module启用Secure Link模块,用于生成和验证安全链接。
--with-http_stub_status_module启用Stub Status模块,用于获取Nginx的运行状态。
--with-http_gzip_static_module启用Gzip Static模块,用于支持静态文件的压缩。
--with-http_random_index_module启用Random Index模块,用于随机选择索引文件。
--with-http_auth_request_module启用Auth Request模块,用于验证用户授权请求。
--with-http_image_filter_module启用Image Filter模块,用于处理图像。

        

        

0x05 Nginx编译安装

编译安装 Nginx1.22.1 。

make && make install

        

        

0x06 Nginx验证启动

访问 Nginx1.22.1 的启动文件夹。

cd /usr/local/nginx/sbin

        

启动 Nginx1.22.1 。

./nginx

        

验证 Nginx1.22.1 文件。

./nginx -t
./nginx -v

        

查看 Nginx1.22.1 启动状态。

netstat -ntlp | grep nginx

        

        

0x07 Nginx服务配置

创建 Nginx1.22.1 配置文件。

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

        

编辑 Nginx1.22.1 运行配置文件,保存并退出。 注意:在写入配置文件时,最好将中文注释去除。 

[Unit]
Description=nginx - high performance web server  # 描述服务功能
Documentation=http://nginx.org/en/docs/  # 获取更多Nginx的信息
After=network.target remote-fs.target nss-lookup.target  # 指定了该服务在哪些其他服务之后启动

[Service]
Type=forking  # 创建子进程运行服务
PIDFile=/usr/local/nginx/logs/nginx.pid  # 指定保存nginx进程ID的文件路径
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf  # 检查nginx配置文件的语法
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  # 启动nginx服务
ExecReload= /usr/local/nginx/sbin/nginx -s reload  # 重启nginx服务
ExecStop= /usr/local/nginx/sbin/nginx -s stop  # 停止nginx服务
PrivateTmp=true  # 启用私有的临时目录

[Install]
WantedBy=multi-user.target  # 多用户模式下启用该服务

        

给刚刚创建好的 Nginx1.22.1 运行配置文件添加权限。

chmod +x /usr/lib/systemd/system/nginx.service

        

打开 Nginx1.22.1 配置文件。

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

        

编辑 Nginx1.22.1 配置文件。这里修改端口为 88 端口号,并设置主机名建立连接,保存并退出。注意需要在服务器中开放 88 端口号。

        

        

0x08 Nginx重载访问

重载 Nginx1.22.1 服务,并设置开机自启动。 注意:请严格按照步骤执行。 

systemctl daemon-reload
systemctl stop nginx.service
systemctl start nginx.service
systemctl reload nginx.service
systemctl restart nginx.service
systemctl status nginx
systemctl enable nginx.service

        

访问 Welcome to nginx! 页面。

        

        

0x09 参考文献

[1].帽子先生. nginx入门之----编译安装[EB/OL]. [2023-11-18]. https://zhuanlan.zhihu.com/p/128579141.

        

        

0x10 总结

至此Nginx编译安装完成。由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

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

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

相关文章

智能配电系统解决方案

智能配电系统解决方案是一种集成了先进技术和智能化功能的配电系统,它能够提高电力系统的效率、可靠性和安全性。力安科技智能配电系统解决方案依托电易云-智慧电力物联网,具体实施的方案如下: 智能化设备和传感器:采用智能化的开…

基于PI+重复控制的并网逆变系统谐波抑制策略模型

微❤关注“电气仔推送”获得资料(专享优惠) PI重复控制简介: 重复控制这一新型控制理论最早于出现日本学术界,其目的是为了用于解决质子加速器跟踪精度的问题。Yamamoto Y 等人提出了重复控制数学基础的内模原理,在控…

PS学习笔记——图层

文章目录 图层面板图层类型新建图层新建方式图层颜色 操作图层修改图层名称选中图层隐藏图层调整图层顺序复制图层 图层面板 按F7可打开/关闭图层面板 该面板就是图层面板了 对所有图层进行筛选的按钮,第一个搜索框可以选择按什么方式进行筛选,支持&am…

x程无忧sign逆向分析

x程无忧sign逆向分析: 详情页sign: 详情页网站: import base64 # 解码 result base64.b64decode(aHR0cHM6Ly9qb2JzLjUxam9iLmNvbS9ndWFuZ3pob3UvMTUxODU1MTYyLmh0bWw/cz1zb3Vfc291X3NvdWxiJnQ9MF8wJnJlcT0zODQ4NGQxMzc2Zjc4MDY2M2Y1MGY2Y…

ZHUTI主提2024春夏 聆听「宁静的声音」

将自然艺术触达生活 生活与艺术实践活动 ZHUTI主提2024春夏艺术活动「宁静的声音」,将自然艺术真实的触达生活为核心,将原野聚会、黑胶音乐、插花、咖啡、食物、舞蹈、服装等艺术与生活的元素组合在这场芦苇荡中,用一场兼具无穷畅想和独特审…

如何快速本地搭建悟空CRM结合内网穿透工具高效远程办公

🌈个人主页:聆风吟 🔥系列专栏:数据结构、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 无需公网IP,使用cpolar实现悟空CRM远程访问二. 通过公网来访问公司…

【Java】ArrayList和LinkedList使用不当,性能差距会如此之大!

文章目录 前言源码分析ArrayList基本属性初始化新增元素删除元素遍历元素 LinkedList实现类基本属性节点查询新增元素删除元素遍历元素 分析测试 前言 在面试的时候,经常会被问到几个问题: ArrayList和LinkedList的区别,相信大部分朋友都能回…

Intellij Idea屏蔽日志/过滤日志

一、安装插件 Grep Console 二、设置关键词,过滤日志 关键词的前后加上 .* 符号,类似: .*关键词.*设置后 ,点击 Apply 即可过滤日志。

LeetCode704.二分查找及二分法

每日一题:LeetCode704.二分查找 LeetCode704.二分查找知识点:二分法解题代码 LeetCode704.二分查找 问题描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中…

VSG-001

VulkanSceneGraph (VSG), is a modern, cross platform, high performance scene graph library built upon Vulkan VSG 是一个基于vulkan的现代的、跨平台的高性能场景管理库 VSg特性: 使用C17作为c规范编码,支持 CppCoreGuidelines支持 FOSS Best P…

大师学SwiftUI第16章 - UIKit框架集成

其它相关内容请见​​虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记​​ SwiftUI是一套新框架,因此并没有包含我们构建专业应用所需的所有工具。这意味着我们会需要求助于UIKit(移动设备)和AppKit(Mac电脑)等原…

optee4.0.0 qemu_v8的环境搭建篇(ubuntu20.10)

快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】:【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈文章目录 前提条件1、拉取代码2、下载工具链3、编译4、运行

Unity在Windows选项下没有Auto Streaming

Unity在Windows选项下没有Auto Streaming Unity Auto Streaming插件按网上说的不太好使最终解决方案 Unity Auto Streaming插件 我用的版本是个人版免费版,版本号是:2021.2.5f1c1,我的里边Windows下看不到Auto Streaming选项,就像下边这张图…

一起Talk Android吧(第五百五十三回:解析Retrofit返回的数据)

文章目录 1. 知识回顾2. 解析方法2.1 解析有效数据2.2 解析错误数据3. 示例代码4. 经验与总结4.1 经验分享4.2 内容总结各位看官们大家好,上一回中咱们说的例子是"Retrofit的基本用法",本章回中介绍的例子是" 如何解析Retrofit返回的数据"。闲话休提,言…

【南京】最新ChatGPT/GPT4科研技术应用与AI绘图及论文高效写作

2023年我们进入了AI2.0时代。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车,就有可能被淘汰在这个数字化时代,如何能高效地处理文本、文献查阅、PPT…

深入了解Java 8 新特性:lambda表达式基础

阅读建议 嗨,伙计!刷到这篇文章咱们就是有缘人,在阅读这篇文章前我有一些建议: 本篇文章大概000多字,预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强,是一篇质量分数较高的技术干货文章&#xf…

数据库选型与优化:策略与技巧的探讨

大家好,我是一名狂热的数据库程序员,最近鼓起勇气开始吐槽一下数据库,如有雷同,请对号入座。 名不副实的数据库类型 先说说最近的事,我们业务有很多图片要管理,老板说让我选个专业的图数据库,…

【LeetCode刷题-双指针】--360.有序转化数组

360.有序转化数组 方法&#xff1a;双指针 从两头计算&#xff0c;保存两端较小的值&#xff0c;高中抛物线知识&#xff0c;a>0&#xff0c;向上的抛物线&#xff0c;两端大中间小&#xff0c;从后往前存储计算结果&#xff1b;a<0&#xff0c;向下的抛物线&#xff0c…

[MySQL] MySQL表的约束

在前面的文章中提到了约束&#xff0c;是通过数据类型对字段产生的约束。但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合法性&#xff0c;从业务逻辑角度保证数据的正确性。于是就引入了表的约束。 表的约束很多&#xff0c;这里主要介…

​软考-高级-系统架构设计师教程(清华第2版)【第17章 通信系统架构设计理论与实践(P614~646)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第17章 通信系统架构设计理论与实践&#xff08;P614~646&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图