【Nginx系列】- Nginx源码复杂安装

2023-11-13

目录

一、下载nginx源码

二、依赖环境准备

三、编译安装

四、加入系统服务


Nginx安装方式有多种,本篇介绍源码复杂安装,目的是进一步了解Nginx

一、下载nginx源码

官网下载最新稳定版:nginx: download


二、依赖环境准备

安装所有依赖环境

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

环境解释

以上所安装的依赖环境作用解释请查看:【Nginx系列】- 源码安装依赖环境解释说明


三、编译安装

源码包准备

上传并解压官网下载的nginx源码包,进入到源码编译目录下

[root@001 nginx-s]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

配置参数

./configure --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock

参数说明

--prefix=PATH
指向Nginx的安装目录,默认值为/usr/local/nginx   
--sbin-path=PATH
指向(执行)程序文件(nginx)的路径,默认值为<prefix>/sbin/nginx
--modules-path=PATH
指向Nginx动态模块安装目录,默认值为<prefix>/modules
--conf-path=PATH
指向配置文件(nginx.conf)的路径,默认值为<prefix>/conf/nginx.conf
--error-log-path=PATH 
指向错误日志文件的路径,默认值为<prefix>/logs/error.log
--http-log-path=PATH
指向访问日志文件的路径,默认值为<prefix>/logs/access.log
--pid-path=PATH
指向Nginx启动后进行ID的文件路径,默认值为<prefix>/logs/nginx.pid
--lock-path=PATH
指向Nginx锁文件的存放路径,默认值为<prefix>/logs/nginx.lock

开始编译安装

make && make install

四、加入系统服务

源码编译安装的nginx需要在安装目录下启动太麻烦,使用systemctl控制更方便

新建如下文件

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

写入以下内容

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

【注】:如果nginx处于启动状态,请先停止

./nginx -s stop

重新加载systemctl服务

systemctl daemon-reload

启动nginx并查看状态,成功

[root@001 sbin]# systemctl start nginx
[root@001 sbin]# systemctl status nginx
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2022-06-22 06:14:17 CST; 2s ago
  Process: 5015 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 5016 (nginx)
   CGroup: /system.slice/nginx.service
           ├─5016 nginx: master process /usr/local/nginx/sbin/nginx
           └─5017 nginx: worker process

Jun 22 06:14:17 001 systemd[1]: Starting nginx...
Jun 22 06:14:17 001 systemd[1]: Started nginx.
[root@001 sbin]#

以上内容就是Nginx复杂源码安装过程,欢迎讨论学习!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Nginx系列】- Nginx源码复杂安装 的相关文章

  • `uwsgi_modifier1 30` 指令没有按照记录从 PATH_INFO 中删除 SCRIPT_NAME

    这是我的 nginx 虚拟主机配置 debian cat etc nginx sites enabled mybox server listen 8080 root www index index html index htm server
  • Nginx 背后的多个 Meteor 站点

    这个问题与this https stackoverflow com questions 10936242 how can i correct the meteor base url in a nginx reverse proxy conf
  • NGinx 域名重定向

    假设我有一个名为 xyz co 的网站 我还有其他具有相同前缀的域名 例如 xyz com xyz it xyz co it 现在 nginx 与端口 80 的 nginx conf 中的 server name xyz co 配合得很好
  • nginx docker 容器:502 错误网关响应

    我有一个服务监听 8080 端口 这不是一个容器 然后 我使用官方镜像创建了一个 nginx 容器 docker run name nginx d v root nginx conf etc nginx conf d p 443 443 p
  • 使用 Nginx 或 Apache 来提供动态内容? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我可以在 Nginx Conf 中添加多少个服务器块

    知道我可以在 Nginx 配置中添加多少个服务器块吗 我需要将它用于具有多个子域的反向代理 每个客户端一个子域 它能成功支持 10 000 个服务器块吗 有没有相关的基准研究 这实际上并不是一个你有多少人的问题can但你有多少 能够妥善处理
  • nginx server_name 在流块内可能吗?

    目前设置如下 stream server listen 9987 udp server name subdomain EXAMPLE com this line is resulting in an error proxy pass loc
  • 将代码从 htaccess 重写为 nginx 配置?

    我在将 htaccess 文件中的重写代码实现到 nginx 配置中时遇到问题 我已经尝试过生成器 http winnginx com htaccess http winginx com htaccess用于生成我的重写 代码 我的ngin
  • nginx位置正则表达式,匹配多次

    如何在 nginx 位置正则表达式中多次匹配 看来 x x 语法永远不起作用 例如 location abc w 1 3 从来不工作 您必须引用包含以下内容的位置 or 人物 location abc w 1 3 否则 nginx 将其解析
  • Django + nginx + uwsgi 无法登录

    我有非常简单的登录逻辑 类似于官方 Django 解决方案 class Login FormView template name login html form class AuthenticationForm def get self a
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • 连接被拒绝:当uwsgi和nginx在不同容器中时

    我正在尝试设置两个 docker 容器 是的 无需 docker compose 分开 一个带有 nginx 另一个带有带有基本 Flask 应用程序的 uwsgi 我在 docker 内的同一网络中运行容器我的 nginx 配置已添加 链
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • 使用 DigitalOcean 在 Kubernetes 集群上为我的 Nginx-Ingress 生成通配符证书

    我遵循了这个 DigitalOcean 指南https www digitalocean com community tutorials how to set up an nginx ingress with cert manager on
  • 使用查询参数值进行 NGINX 301 重定向

    我想重定向example com lang en to example com en 我正在使用 Python Django 我的服务器运行 Plesk Nginx 我尝试像这样在我的网页上重定向 但这是行不通的 rewrite lang
  • 是否可以使用 nginx 合并两个 json 响应?

    我有一个现有的快速端点 如下所示 app get route id async req res gt try const id req params id const result await dbFn id res send result
  • 为什么将域连接到“Shopify”需要 CNAME 和 A 记录?

    为什么将域连接到 Shopify 需要CNAME and ARecord ref https help shopify com en manual domains add a domain using existing domains co
  • 通过 PHP 脚本重新启动 Nginx

    我目前正在努力使我的 WordPress 插件与 nginx 兼容 该插件需要访问 conf文件在wp content uploads目录 以便它可以添加所需的规则 目前 它更新了 htaccess文件位于同一目录中 更改立即生效 无需干预
  • Nginx - 特定位置的另一个根

    我在下面有一些静态 html 文件 var www project1 该项目的 Nginx 配置是 server name www project1 com project1 com root var www project1 locati
  • nginx 解析器——dns

    请原谅一个非常初学者的问题 我无法理解 nginx 的 解析器 参数及其工作原理 我已阅读文档 搜索教程和帖子 使用解析器 nginx 和 dns 等关键字 但我仍然不确定如何应用解析器 http nginx org en docs htt

随机推荐

  • 【FFmpeg】多媒体文件处理

    1 ffmpeg的日志打印 include
  • Rancher 集群安装

    一 Rancher 是什么 Rancher 是一个 Kubernetes 管理工具 用于在任何地方和任何提供商上部署和运行集群 Rancher 可以从托管提供商调配 Kubernetes 调配计算节点 然后将 Kubernetes 安装到这
  • TCP应用层协议

    TCP IP是个协议组 可分为三个层次 网络层 传输层和应用层 在网络层有IP协议 ICMP协议 ARP协议 RARP协议和BOOTP协议 在传输层中有TCP协议与UDP协议 在应用层有FTP HTTP TELNET SMTP DNS等协议
  • 准备刺第一针了(飞秋官方下载)

    WZSZF飞鸽 2013年10月26日 它还有一双花椒粒一样大小的眼睛 它还会丰富多腔地叫唤 叫起来婉转动听 毛大爹 原来我们不能离开眼镜啊 第二天 呜的一声 简直不相信自己的耳朵 放生青蛙今天外公外婆叔叔阿姨们要来我家吃饭 我终于撑到最后
  • Z-Statk协调器 路由器 终端的确定---Simple例程(一)

    Z Statk协调器 路由器 终端的确定 Simple例程 一 2010 12 24 09 42 10 分类 嵌入式 当我们选择了终端 路由器 或者协调器的时候 来看一下程序中是怎么判断的 也就是如何作为其中的各个角色进行启动 是加入网络
  • 使用内网负载机(Linux)执行Jmeter性能测试

    一 背景 在我们工作中有时候会需要使用客户提供的内网负载机进行性能测试 一般在什么情况下我们需要要求客户提供内网负载机进行性能测试呢 遇到公网环境下性能测试达到了带宽瓶颈 那么这时 我们就需要考虑在内网环境负载机下来执行我们的性能测试以达到
  • 给button设置背景图片不显示解决了

    以前给按钮设置背景图片但是图片不显示 一直没有解决 网上也找不到正确的方法 今天终于被我解决了 其实就把button的背景颜色改改就OK了
  • 面试时这样介绍算法,想不高薪都难,排序算法(归并排序)

    算法背景 归并排序 Merge sort 是一种排序算法 它的目的是将一个无序的数组变成有序的 它采用分治法 将原数组不断地分成若干个小数组 直到每个小数组只有一个元素 然后把这些小数组按照顺序合并起来 最终得到一个有序的数组 归并排序需要
  • CSS3滤镜——页面黑白灰度处理

    每当遭遇重大灾难 比如之前的非典 汶川地震 以及前几天清明节对新冠肺炎逝世同胞的哀悼 各大主流网站也会呈黑白两色 今天偶然搜了下实现机制 原来是如此的简单 也对之前不怎么了解的滤镜刮目相看了 将以下样式代码放到页面中即可实现页面黑白处理 这
  • 数据结构和算法之插入排序

    一 插入排序 插入排序是一种简单直观的排序算法 它的原理是通过构建有序序列 对于未排序数据 在已排序序列中从后向前扫描 找到相应位置并插入 mermaid svg v2YbPqchr8qWCPvn font family trebuchet
  • FreeRTOS,串口中断接收中使用xQueueOverwriteFromISR()函数,程序卡死在configASSERT

    原因 UART的中断优先级设置的太高 高于了configMAX SYSCALL INTERRUPT PRIORITY宏定义的安全中断等级 UART的中断等级小于等于宏定义的优先等级即可
  • 学习新技术的10个建议

    学习新技术的10个建议 http www apkbus com portal php mod view aid 1780 我们生活在一个振奋人心的时代 我们可以越来越方便廉价地获得大量学习资源 这些资源的传播载体由最初的教室被变成了博客 技
  • “范式杯”2023牛客暑期多校训练营1

    D Chocolate 题意 有n m的矩阵 分成n m块 每一块都有一块巧克力 然后A和B两个人 进行博弈 选择一个下标 i j 将左上角 1 1 到 i j 的巧克力全部吃掉 如果谁是最后一个吃完全部巧克力 那么就输了 每人至少吃一块巧
  • 支付宝API接口开发相关文档以及实例

    支付宝实物即时到账接口 在下载该接口之前 请确定你已经签约了即时到账的服务协议 并且账号已经开通了即时到账的权限 口常见错误问题搜集 http union alipay com alipay zhichi shiwu 商家工具FAQ pdf
  • Python兼职:800-1500元/天,多做多得,时间自由!

    以下三种情况 哪个让你最绝望 好不容易找到一个资源齐全的网站 不是要收费就是要翻墙 每次想看的音乐会 想抢的假期车票 永远抢不到 工资4500 生活费1000 花呗欠了10000 说实话 反正我真的选不出 每一个都让我崩溃 但是我将这个测试
  • kibana创建索引_Elasticsearch 实战案例(索引切分、模板、别名、数据迁移)

    背景 基于ELK搭建的日志平台 前期匆忙建设过程中一些参数和设计未做过多的考虑 上线后就需要不断根据实际情况做调整 而一些调整限于ELK的一些特性 一旦操作不当就会出现丢数据 数据写入异常 数据查不到等情况 因此如何在这种背景下 做到对使用
  • 海康威视智能终端获取实时人脸体温识别记录二次开发java

    需求 使用的是海康威视人脸带体温识别智能终端 根据主动获取设备事件现在不支持获取体温 所以实时获取 参考设备布防 设备登陆注册省略 见 海康威视人脸识别智能终端获取设备事件二次开发Java 设备布防 Thread sleep 100000
  • Flutter 应用开发的pubspec.yaml文件说明

    pubspec yaml文件简介 作用 pubspec yaml是Flutter项目中的配置文件 它用于定义项目的依赖项 资源文件以及其他相关配置 示例 name audioplayers example description Demon
  • 进程和线程的区别

    转自文章进程和线程的区别 面试必考 进程和线程的区别 1 根本区别 进程和线程的根本区别是进程是操作系统 OS 资源分配的基本单位 而线程是处理器 CPU 任务调度和执行的基本单位 2 资源开销 每个进程都有独立的代码和数据空间 程序上下文
  • 【Nginx系列】- Nginx源码复杂安装

    目录 一 下载nginx源码 二 依赖环境准备 三 编译安装 四 加入系统服务 Nginx安装方式有多种 本篇介绍源码复杂安装 目的是进一步了解Nginx 一 下载nginx源码 官网下载最新稳定版 nginx download 二 依赖环