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

今天开始学习NGINX服务配置与部署

一.nginx服务搭建


nginx的安装


yum安装(openeuler可以直接安装):

[root@localhost ~]# yum install -y nginx

如果安装不了就先

[root@localhost ~]# yum install -y epel-release

(2)编译安装(生产环境下大多都是编译安装):

需下载源文件

好好了解一下 Nginx 编译安装时的配置参数里面的内容都是干什么用的

[root@localhost nginx]# nginx -V
nginx version: nginx/1.24.0
built by gcc 12.3.1 (openEuler 12.3.1-64.oe2403sp1) (GCC) 
built with OpenSSL 3.0.12 24 Oct 2023
TLS SNI support enabled
configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_perl_module=dynamic --with-http_auth_request_module --with-mail=dynamic --with-mail_ssl_module --with-openssl-opt=yes --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -grecord-gcc-switches -pipe -fstack-protector-strong -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/generic-hardened-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/generic-hardened-ld -Wl,-E'

一、基础路径配置:定义 Nginx 文件 / 目录的位置

这类参数指定 Nginx 安装后,可执行文件、配置文件、日志文件等的存储路径,是运维时定位文件的核心依据。

参数作用
--prefix=/usr/share/nginxNginx 的主安装目录(前缀目录),其他路径默认基于此目录扩展(除非单独指定)。
--sbin-path=/usr/sbin/nginxNginx 核心可执行文件(nginx 命令)的路径,用于启动 / 停止 / 重启 Nginx(如 systemctl start nginx 本质调用此文件)。
--modules-path=/usr/lib64/nginx/modulesNginx 动态模块(.so 文件)的存放目录,后续可通过 load_module 指令加载这里的模块。
--conf-path=/etc/nginx/nginx.confNginx 主配置文件的路径,所有服务配置(如虚拟主机、反向代理)都基于此文件生效。
--error-log-path=/var/log/nginx/error.logNginx 错误日志的路径(如启动失败、请求报错等信息),是排查故障的关键日志。
--http-log-path=/var/log/nginx/access.logHTTP 请求日志的路径(记录所有客户端请求的 IP、时间、URL、状态码等),用于流量分析和访问审计。
--http-xxx-temp-path(如 --http-client-body-temp-pathNginx 处理 HTTP 请求时的临时文件目录:- client_body:存储客户端 POST 提交的表单数据(如文件上传临时数据);- fastcgi/proxy/scgi/uwsgi:存储反向代理(如代理 PHP-FPM、Tomcat)时的临时缓存数据。
--pid-path=/run/nginx.pid存储 Nginx 主进程 ID(PID)的文件路径,用于系统识别 Nginx 进程(如 kill $(cat /run/nginx.pid) 可停止 Nginx)。
--lock-path=/run/lock/subsys/nginxNginx 锁文件路径,用于防止多个进程同时操作 Nginx(如避免重复启动)。

二、用户与权限配置:定义 Nginx 进程的运行身份

控制 Nginx 进程的用户组权限,避免以 root 身份运行带来的安全风险。

参数作用
--user=nginxNginx 工作进程(处理请求的进程)的运行用户,通常创建专用的 nginx 用户,限制权限范围。
--group=nginxNginx 工作进程所属的用户组,与 --user 配合实现权限隔离。

三、核心功能与性能优化:启用底层能力

开启 Nginx 基础性能优化和核心特性,提升并发处理能力。

参数作用
--with-file-aio启用 异步文件 I/O(AIO),允许 Nginx 在读取文件时不阻塞进程,大幅提升高并发场景下的文件传输效率(如静态资源服务)。
--with-ipv6启用 IPv6 协议支持,允许 Nginx 监听和处理 IPv6 地址的请求(适配现代网络环境)。
--with-pcre集成 PCRE(Perl Compatible Regular Expressions)库,支持 Nginx 配置中使用正则表达式(如 location ~ \.php$ 匹配 PHP 请求)。
--with-pcre-jit启用 PCRE 的 即时编译(JIT) 功能,将常用正则表达式编译为机器码,提升正则匹配速度(减少 CPU 占用)。
--with-debug启用 Nginx 调试模式,生成更详细的调试日志(仅用于开发 / 排查复杂问题,生产环境建议关闭,避免日志冗余)。
--with-google_perftools_module集成 Google Performance Tools 库,用于分析 Nginx 的性能瓶颈(如 CPU 占用、内存泄漏等),仅用于性能调优场景。

四、HTTP 模块:定义 Nginx 处理 HTTP 请求的能力

HTTP 模块是 Nginx 作为 Web 服务器 / 反向代理的核心,决定了支持的 HTTP 特性(如 HTTPS、压缩、缓存等)。参数中 --with-http_xxx_module 表示启用对应模块,=dynamic 表示「动态模块」(可后续加载,不强制编译进主程序)。

模块参数作用
--with-http_ssl_module启用 HTTPS 支持,允许 Nginx 配置 SSL 证书(如 listen 443 ssl),实现加密传输(必备模块,保障数据安全)。
--with-http_v2_module启用 HTTP/2 协议支持,相比 HTTP/1.1 优化了并发传输(如多路复用、头部压缩),提升网页加载速度(需配合 HTTPS 使用)。
--with-http_realip_module启用 真实 IP 透传,当 Nginx 位于反向代理(如 CDN、负载均衡器)后端时,可通过此模块获取客户端真实 IP(而非代理服务器 IP),用于日志记录和访问控制。
--with-http_addition_module启用 内容追加 / 插入 功能,允许在 HTTP 响应的头部或尾部添加自定义内容(如给所有页面添加版权注释)。
--with-http_xslt_module=dynamic启用 XSLT 转换模块(动态),支持将 XML 响应转换为 HTML(通过 XSLT 样式表),适用于 XML 服务场景(较少用)。
--with-http_image_filter_module=dynamic启用 图片处理模块(动态),支持对图片进行缩放、裁剪、旋转、加水印等操作(如缩略图生成,无需依赖外部工具)。
--with-http_sub_module启用 内容替换模块,允许在 HTTP 响应中替换指定字符串(如将页面中的 old.domain.com 替换为 new.domain.com)。
--with-http_dav_module启用 WebDAV 协议支持,允许客户端通过 HTTP 进行文件上传、修改、删除(如用于简单的文件管理服务)。
--with-http_flv_module/--with-http_mp4_module启用 FLV/MP4 流媒体支持,优化视频文件的传输(如支持视频断点续传、进度拖拽,适合视频网站)。
--with-http_gunzip_module启用 Gunzip 解压,当客户端不支持 Gzip 时,自动将 Gzip 压缩后的资源解压后返回(兼容旧客户端)。
--with-http_gzip_static_module启用 静态 Gzip 压缩,允许 Nginx 直接返回预压缩好的静态文件(如 index.html.gz),避免实时压缩消耗 CPU。
--with-http_random_index_module启用 随机索引,当访问目录时(如 http://domain.com/files/),随机返回目录下的一个文件(而非默认的 index.html)。
--with-http_secure_link_module启用 安全链接,生成带有过期时间或签名的临时 URL(如 http://domain.com/file.zip?sign=xxx&expires=xxx),防止资源被非法下载。
--with-http_degradation_module启用 服务降级,当服务器负载过高时,自动返回简单响应(如 503 页面),避免服务崩溃。
--with-http_slice_module启用 分片请求,支持客户端将大文件请求拆分为多个小分片(如下载 1GB 文件时拆分为 10 个 100MB 分片),提升大文件下载速度和稳定性。
--with-http_perl_module=dynamic启用 Perl 嵌入模块(动态),允许在 Nginx 配置中嵌入 Perl 脚本(如复杂的访问控制逻辑),灵活性高但性能略低。
--with-http_auth_request_module启用 请求认证,允许 Nginx 将认证请求转发到后端服务(如 PHP 接口),由后端判断用户是否有权访问(如单点登录场景)。

五、邮件 / 流处理模块:扩展 Nginx 除 HTTP 外的能力

除了 Web 服务,Nginx 还可作为邮件代理或 TCP/UDP 反向代理,这类模块用于支持这些扩展场景。

模块参数作用
--with-mail=dynamic启用 邮件代理模块(动态),允许 Nginx 作为 SMTP/POP3/IMAP 代理(如转发邮件请求到后端邮件服务器,实现负载均衡)。
--with-mail_ssl_module为邮件模块启用 SSL 支持,实现邮件传输的加密(如 POP3S、IMAPS 协议)。
--with-stream=dynamic启用 TCP/UDP 流处理模块(动态),允许 Nginx 作为 TCP/UDP 反向代理(如代理数据库端口、Redis 端口,实现后端服务的负载均衡和高可用)。
--with-stream_ssl_module为流处理模块启用 SSL 支持,实现 TCP 连接的加密(如代理 MySQL 时使用 SSL 加密传输)。

六、编译优化:定义编译器参数,提升性能与安全性

通过编译器(如 GCC)的参数,优化 Nginx 二进制文件的性能和安全性,避免漏洞。

参数作用(拆解 --with-cc-opt 和 --with-ld-opt 中的关键选项)
--with-cc-opt='...'(编译器参数)控制 GCC 编译时的选项:- -O2:启用二级优化,平衡编译速度和程序性能;- -g/-grecord-gcc-switches:生成调试信息(用于排查崩溃问题);- -pipe:使用管道传递编译中间文件,加速编译;- -fstack-protector-strong/-Wp,-D_FORTIFY_SOURCE=2:启用栈保护,防止缓冲区溢出攻击;- -Wall/-Werror=format-security:开启所有警告,且将格式安全错误视为编译错误(避免代码隐患);- -m64/-mtune=generic:针对 64 位系统优化,适配通用 CPU;- -fasynchronous-unwind-tables/-fstack-clash-protection:增强堆栈异常处理,防止栈冲突攻击。
--with-ld-opt='...'(链接器参数)控制链接器(ld)生成二进制文件的选项:- -Wl,-z,relro/-Wl,-z,now:启用内存地址随机化和立即绑定,防止代码注入攻击;- -specs=/usr/lib/rpm/generic-hardened-ld:使用 RPM 系统的硬化链接规则,进一步提升安全性;- -Wl,-E:允许动态模块访问主程序的符号(确保动态模块正常加载)。
--with-openssl-opt=yes传递额外参数给 OpenSSL 编译(此处 yes 表示启用默认优化),确保 http_ssl_module 等模块使用的 OpenSSL 库性能最优。

[root@localhost nginx]# vim nginx.conf

error_log /var/log/nginx/error.log notice  #错误文件日志

如果网站不能正常访问那是什么问题?

首先确定客户端是否有问题

nginx -t检查配置是否有问题
nginx -c configfilePath指定配置文件启动nginx
[root@localhost ~]# nginx -t -c /etc/nginx/nginx.conf
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
信号名含义
stop直接停止
quit优雅的退出:有人在访问不会结束进程
reopen分割日志
reload重新加载配置文件
-s signal     : send signal to a master process: stop, quit, reopen, reload

指定当前启动时的配置参数

[root@localhost ~]# nginx -g "daemon off;"

http://www.dtcms.com/a/396519.html

相关文章:

  • icp备案网站接入信息怎么写高端vi设计机构
  • 江西手机网站建设WordPress明月浩空
  • 网站建设策划案怎么写中上网站建设
  • 物流网站开发系统论文什么网站是做汽车装饰配件的
  • jsp网站开发实例视频服装网站建设项目实施报告
  • wordpress技术站主题装饰工程
  • 设计参考网站有哪些门户网站开发维护合同
  • 探展打卡 Serverless,2025 云栖大会来了
  • 天迈装饰网站建设项目网站开发设计需求文档
  • 重庆网站seo教程帮朋友做网站 知乎
  • 学做ps的网站有哪些app001推广平台官网
  • 餐饮类网站设计地方门户网站备案
  • MySQL 锁 学习笔记
  • 网站备案为何要关站国外主题网站
  • 个人做网站流程百度云做网站
  • 贸易型企业网站建设实验一 html静态网站开发
  • 上海物流公司网站建设青岛网站seo收费标准
  • 手机网站主页设计网站开发图标
  • 旅游微网站建设站长工具高清吗
  • 网站收录和没收录区别不配置iis做网站
  • 湖南旅游网站开发公司网页怎么设计
  • 临沂国际外贸网站建设惠州网站建设方案推广
  • 建立站点的基本步骤长沙企业如何建网站
  • 网站的友情链接是什么意思北京正规制作网站公司
  • 网站标题几个字合适免费引流推广怎么做
  • 网页制作与网站建设完全学习手册pdf赣州市人才网
  • 网站开发 外包哈尔滨建设局
  • 网站上的产品五星怎样做优化wordpress能不能修改和添加模块
  • 个人网站主页设计wordpress pkm
  • 如何在网站上做淘宝客推广长沙网站建设商城