《Linux 里的 Nginx 魔法:从下载到部署,轻松拿捏!》

目录

1. 为什么选择Nginx?

2. Nginx安装包下载地址

3. 环境准备

3.1 验证并安装编译工具链

4. Nginx 部署

4.1 开放防火墙端口

4.2 安装 Nginx 

5.创建 systemd 服务文件


1. 为什么选择Nginx?

Nginx 作为一款高性能 Web 服务器和反向代理工具,具有以下核心优势:

特性说明
高并发处理基于事件驱动和异步非阻塞模型,轻松支持数万并发连接(如电商大促场景)。
低内存消耗静态资源处理内存占用仅为 Apache 的 1/5~1/10,适合资源受限环境。
反向代理与负载均衡支持 HTTP、TCP/UDP 协议的分流,适用于微服务架构。
热部署支持不中断服务更新配置或升级版本,保障业务连续性。
模块化扩展可通过第三方模块(如 Lua、Brotli 压缩)灵活增强功能。

典型应用场景

  • 静态资源托管(图片、CSS/JS 文件)

  • API 网关和负载均衡(分发请求到后端 Tomcat、Node.js 服务)

  • 安全防护(限流、WAF 集成)

2. Nginx安装包下载地址

  • 官网下载
    nginx: download

    • 稳定版(Stable):推荐生产环境使用。

    • 开发版(Mainline):体验最新功能。

3. 环境准备

3.1 验证并安装编译工具链

1. GCC 编译器

# 如果有gcc编译器,这条命令就会显示出当前安装的gcc编译器是哪个版本,没有需要安装。
  gcc -v

2. 开发库依赖

依赖库作用验证命令安装命令(CentOS)
openssl-develHTTPS 加密支持rpm -qa openssl-develsudo yum install openssl-devel
pcre-devel正则表达式支持rpm -qa pcre-develsudo yum install pcre-devel
zlib-develGZIP 压缩支持rpm -qa zlib-develsudo yum install zlib-devel

3. 编译前验证原因

  • 这些库是 Nginx 核心功能的编译依赖(如无则编译失败)。

  • 示例场景

    • 编译 Nginx 时,若缺少 openssl-devel,则无法启用 HTTPS 模块。

    • 缺少 pcre-devel,Nginx 的rewrite规则功能会编译失败。

    • 缺少 zlib-devel,软件无法实现数据压缩,可能影响性能(如传输大文件时带宽占用更高)。

4. Nginx 部署

4.1 开放防火墙端口

开放 80(HTTP)端口和 443(HTTPS)端口

(1)查看防火墙状态

        systemctl status firewalld

(2)开放端口

       firewall-cmd --zone=public --add-port=80/tcp --permanent

       firewall-cmd --zone=public --add-port=443/tcp --permanent

(3)防火墙重新加载配置

       firewall-cmd --reload  

(4) 查看防火墙所有开放的端口

       firewall-cmd --zone=public --list-ports

4.2 安装 Nginx 

(1)解压源码包(以nginx-1.23.1.tar.gz为例)

tar -zxvf nginx-1.23.1.tar.gz -C /opt

(2)编译安装

  进入nginx 目录下

cd nginx-1.23.1/

   编译选项
   prefix=/usr/local/nginx                             # 安装根目录
   conf-path=/etc/nginx/nginx.conf              # 配置文件路径
   sbin-path=/usr/sbin/nginx                        # 指定 Nginx 可执行文件的安装路径
   error-log-path=/var/log/nginx/error.log     # 错误日志文件路径
   http-log-path=/var/log/nginx/access.log  # 访问日志文件路径
   pid-path=/var/run/nginx.pid                     #  进程 ID(PID)文件路径
   with-http_ssl_module                              #  启用 SSL 模块
   with-http_gzip_static_module                 # 启用 GZIP 压缩
   with-threads                                            # 支持线程池
   with-pcre                                                  # PCRE 正则支持 
   with-http_ssl_module                              # 启用 SSL 支持(HTTPS)
   with-http_v2_module                               # 启用 HTTP/2
   with-http_stub_status_module                # 启用状态监控 

./configure  --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_gzip_static_module --with-threads --with-pcre  --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module

   编译安装

make -j$(nproc)     # 多核并行编译,加快速度
sudo make install   # 需 root 权限安装到系统目录

(3)启动 

/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf

(4)停止命令

/usr/local/nginx/sbin/nginx -s stop 

(5)验证

         浏览器访问 http://<服务器IP>,显示 Nginx 欢迎页即表示成功。

(6)加入环境变量
  永久添加(修改配置文件)

vi /etc/profile

  在文件末尾添加:

export PATH=$PATH:/usr/local/nginx/sbin

  保存后执行:

source /etc/profile

  查看版本,确认命令生效

nginx -v  

  成功识别命令后,重新加载配置:

nginx -s reload  

5.创建 systemd 服务文件

 (1)创建配置

  vi /etc/systemd/system/nginx.service

​[Unit]
Description=nginx - high performance web server
Documentation=nginx documentation
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

​

(2)重载 systemd 并管理服务

# 重载systemd管理器配置,使新创建的nginx服务文件生效
sudo systemctl daemon-reload
# 设置nginx服务开机自启动
sudo systemctl enable nginx
# 确保在启动前没有残留的nginx进程
# 若已有进程运行,可能导致端口冲突或配置不生效
sudo systemctl stop nginx
# 启动nginx服务
sudo systemctl start nginx
# 查看nginx服务运行状态
# 确认active(running)状态及运行时长等信息
sudo systemctl status nginx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值