Nginx 安装与 HTTPS 配置指南:使用 OpenSSL 搭建安全 Web 服务器

Nginx 安装与 HTTPS 配置指南:使用 OpenSSL 搭建安全 Web 服务器

一、Nginx安装

1. 安装依赖项

sudo yum groupinstall "Development Tools" -y # 非必须
sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel -y

2.下载Nginx

wget http://nginx.org/download/nginx-1.28.0.tar.gz

3.解压下载的文件

tar -zxvf nginx-1.28.0.tar.gz
cd nginx-1.28.0

4. 配置安装选项

在Nginx源代码目录下运行./configure脚本来准备编译环境。可以使用默认配置或添加自定义选项。

./configure,加上 --with-http_ssl_module

./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre# 参数项说明---------------------------------------------------------------------------------------------------------------------------
1. --prefix=/usr/local/nginx
作用:指定 Nginx 的安装目录。
说明:编译安装完成后,Nginx 的可执行文件、配置文件、日志等都会放在这个目录下。
默认值:如果不指定,默认是 /usr/local/nginx。
✅ 建议保留:除非你有特殊需求,否则建议使用这个路径。2. --with-http_ssl_module
作用:启用 HTTPS/SSL 支持。
说明:只有启用了这个模块,Nginx 才能支持 listen 443 ssl;,才能配置 HTTPS 网站。
依赖:需要系统中安装了 OpenSSL 库。
✅ 重要模块:如果你要配置 HTTPS(如使用 Let's Encrypt 或自签名证书),必须启用。3. --with-http_realip_module
作用:允许 Nginx 获取客户端的真实 IP 地址。
适用场景:当 Nginx 前面有 CDN、反向代理或负载均衡器时,客户端的真实 IP 会被代理服务器“隐藏”,这个模块可以让你通过设置 set_real_ip_from 和 real_ip_header 来还原真实 IP。
✅ 推荐启用:尤其在做访问控制、日志记录、限流等操作时非常有用。4. --with-http_stub_status_module
作用:启用 Nginx 的状态监控模块。
用途:可以让你访问一个类似 /nginx_status 的页面,查看当前 Nginx 的连接数、请求数等运行状态。
✅ 推荐启用:用于监控 Nginx 性能,对运维很有帮助。5. --with-http_gzip_static_module
作用:支持预压缩文件的静态压缩传输。
说明:比如你有一个 index.html.gz 文件,客户端支持 gzip 时,Nginx 可以直接发送这个 .gz 文件,而不需要实时压缩。
✅ 推荐启用:提高性能,减少 CPU 开销。6. --with-pcre
作用:启用 PCRE(Perl Compatible Regular Expressions)库支持。
用途:Nginx 的 location、rewrite 等指令依赖正则表达式,PCRE 是实现这些功能的基础。
✅ 必须启用:除非你完全不用正则匹配,否则这个参数必须加上。

5.编译并安装

运行make命令编译源代码,然后使用make install命令安装Nginx。

make
make install

6. Nginx启动停止脚本

/usr/local/nginx

#!/bin/bash
# nginx.sh - 控制 Nginx 启动、停止、重启、查看状态
# 适用于手动安装的 Nginx(路径:/usr/local/nginx)### 配置项 ###
NGINX_PATH="/usr/local/nginx"
NGINX_EXEC="$NGINX_PATH/sbin/nginx"
NGINX_CONF="$NGINX_PATH/conf/nginx.conf"
NGINX_PID="$NGINX_PATH/logs/nginx.pid"### 检查是否为 root 用户运行 ###
if [ "$(id -u)" != "0" ]; thenecho "请使用 root 权限运行此脚本(sudo)"exit 1
fi### 启动 Nginx ###
start() {echo "正在启动 Nginx..."### 检查配置文件 ###$NGINX_EXEC -t > /dev/nu

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

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

相关文章

写个 flask todo app,简洁,实用

- 此项目虽然看起来简单,实际上,修改成自己喜欢的样子,也是费时间的。 - 别人都搞AI 相关的项目,而我还是搞这种基础的东西。不要灰心。 - 积累。不论项目大小,不论难易,只看是否有用。项目地址&#xff1a…

4麦 360度定位

要在 ESP32 上用 4 个麦克风实现 360 声源定位,通常思路是通过 时延估计(TDOA) 几何计算,核心流程:阵列布置将 4 个麦克风等间距布置成正方形(或圆形)。记阵列中心为原点,麦克风编号…

使用yolov10模型检测视频中出现的行人,并保存为图片

一、使用yolov10模型检测视频中出现的行人,并保存为图片,detect_person.py代码如下:from ultralytics import YOLOv10 import glob import os import cv2 import argparsedef detect_person(videoPath, savePath):if not os.path.exists(save…

现在希望用git将本地文件crawler目录下的文件更新到远程仓库指定crawler目录下,命名相同的文件本地文件将其覆盖

git checkout main git pull origin main $source “D:\黑马大数据学习\crawler” $dest Join-Path (Get-Location) “crawler” if (-not (Test-Path $dest)) { New-Item -ItemType Directory -Path $dest | Out-Null } Copy-Item -Path $source* -Destination $dest -Recur…

网络调制技术对比表

📊 网络调制技术全维度对比表​调制技术​​简称​​频谱效率​​抗噪性​​功率效率​​复杂度​​关键特性​​典型应用场景​​幅度键控​ASK低差高低/低电路简单,易受干扰遥控器、光通信(OOK)​频移键控​FSK低-中中中中/中抗噪较好,频谱…

优化 Elasticsearch JVM 参数配置指南

一、概述 Elasticsearch 是基于 JVM 的搜索和分析引擎。JVM 参数的合理配置直接影响着 Elasticsearch 的性能和稳定性。尽管 Elasticsearch 已经提供了默认的 JVM 设置,但在某些特定场景下,我们可能需要进行适当的调整和优化。 本文将详细讲述如何安全、…

Python, Go 开发如何进入心流状态APP

要开发一款基于Python和Go语言、帮助用户进入“心流”状态(高度专注、高效愉悦的心理状态)的应用,需结合两种语言的技术优势(Go的高并发与性能、Python的灵活性与AI生态)及心流触发机制(清晰目标、即时反馈…

一文详解手机WiFi模块与连接

目录 1 硬件模块 1.1 Wifi射频模 1.2 电源管理模块 2 软件与协议栈 2.1 系统服务层 2.2 认证与协议处理 3 连接流程 3.1 开启WiFi与扫描 3.2 选择网络与认证 3.3 连接与IP分配 4 特殊连接方式 4.1 WPS快速连接 4.2 热点模式(AP模式) 4.3 U…

Java 网络编程详解:从基础到实战,彻底掌握 TCP/UDP、Socket、HTTP 网络通信

作为一名 Java 开发工程师,你一定在实际开发中遇到过需要与远程服务器通信、实现客户端/服务端架构、处理 HTTP 请求、构建分布式系统等场景。这时,Java 网络编程(Java Networking) 就成为你必须掌握的核心技能之一。Java 提供了丰…

Java面试题(中等)

1. 计算机网络传输层有哪些协议?分别适用于什么场景?TCP协议(传输控制协议)​:面向连接、可靠传输,流量控制、拥塞控制。适用于要求数据完整性的场景,如文件传输、网页浏览、电子邮件等。UDP协议 (用户数据报协议)​&a…

Apache 消息队列分布式架构与原理

消息队列 基本概念 定义 消息队列(Message Queue, MQ)是一种分布式中间件,通过异步通信、消息暂存和解耦生产消费双方的机制,提供消息的顺序性保证、可靠投递和流量控制能力,广泛应用于微服务解耦、大数据流处理等场景…

ModernBERT如何突破BERT局限?情感分析全流程解析

自2018年推出以来,BERT 彻底改变了自然语言处理领域。它在情感分析、问答、语言推理等任务中表现优异。借助双向训练和基于Transformer的自注意力机制,BERT 开创了理解文本中单词关系的新范式。然而,尽管成绩斐然,BERT 仍存在局限…

股票Level2逐笔成交及十档订单簿分钟级Tick历史行情数据详细解析

本地股票数据处理与分析实战指南 在量化投资与金融数据分析领域,高效处理本地存储的股票数据是核心能力之一。本文将从数据类型定义、解析流程及实际应用角度,系统介绍如何基于CSV文件管理股票分钟数据、高频Tick数据、逐笔数据、Level2历史行情等多样化…

面向互联网2C业务的分布式类Manus Java框架

本文介绍了阿里巴巴推出的分布式类ManusAgent框架——ali-langengine-dflow,旨在解决现有Agent架构在互联网2C业务场景中的局限性。文章从背景出发,分析了当前主流Agent架构(如Manus、字节TARS、AutoGLM)存在的问题,如…

Java-82 深入浅出 MySQL 内部架构:服务层、存储引擎与文件系统全覆盖

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) AI炼丹日志-30-新发布【1T 万亿】参数量大模型!Kim…

开发避坑短篇(6):Vue+Element UI 深度选择器实现表单元素精准对齐的技术实践

需求 el-form 表单的el-input和el-select默认宽度度不一致&#xff0c;导致不对齐&#xff0c;如下图。那么如何设置让el-input和el-select的宽度度一致并对齐&#xff1f;<el-form class"page-form" :model"addForm" :rules"rules" :disable…

rust-参考与借用

参考与借用 在清单4-5中的元组代码的问题在于&#xff0c;我们必须将String返回给调用函数&#xff0c;这样我们才能在调用calculate_length之后继续使用String&#xff0c;因为String已经被移动到了calculate_length中。相反&#xff0c;我们可以提供一个对String值的引用。引…

深入解析HDFS Federation:如何有效解决单NameNode瓶颈问题

HDFS Federation简介与背景在Hadoop分布式文件系统&#xff08;HDFS&#xff09;的经典架构中&#xff0c;NameNode作为核心组件承担着整个文件系统的元数据管理职责。这一设计虽然简洁高效&#xff0c;但随着数据规模的爆炸式增长&#xff0c;单NameNode架构逐渐暴露出难以克服…

为什么选择EasyGBS?

作为集 算法仓、算力设备接入、视频云平台 于一体的综合性智能安防监控平台&#xff0c;EasyGBS有哪些优势是您的必选理由呢&#xff1f;一、设备与协议的兼容性EasyGBS不挑设备品牌型号。只要支持GB28181、RTSP、ONVIF、RTMP标准协议里的任一种&#xff0c;就能将视频接入。但…

【形态学变换】——图像预处理(OpenCV)

目录 1 核 2 腐蚀 3 膨胀 4 开运算 5 闭运算 6 礼帽运算 7 黑帽运算 8 形态学梯度 形态学变换是一种基于形状的简单变换&#xff0c;处理对象是二值化后的图像。有两个输入&#xff1a;原图像和核&#xff0c;一个输出&#xff1a;形态学变换后的图像。基本操作有以下四…