Centos项目部署之Nginx 的安装与卸载

Nginx 的安装与卸载

Nginx 安装

以下是在 CentOS 7.9 上通过源码编译安装 Nginx,并配置 BrotliGzip 压缩及 HTTPHTTPS 的完整步骤。

1. 安装编译器和工具

sudo yum install -y epel-release sudo yum install -y wget git make gcc-c++ pcre-devel zlib-devel openssl-devel brotli-devel

2. 下载 Nginx 及 Brotli 模块

# 进入下载目录 cd /usr/local/softpackage # 下载 ngx_brotli 模块 git clone https://github.com/google/ngx_brotli.git cd ngx_brotli # 修改子模块 URL 为国内镜像 git config submodule.deps/brotli.url https://gitee.com/mirrors/brotli.git # 然后执行子模块更新(速度会快很多) git submodule update --init # 返回到下载目录 cd .. # 下载nginx wget -P /usr/local/softpackage http://nginx.org/download/nginx-1.25.3.tar.gz # 解压 tar -zxvf /usr/local/softpackage/nginx-1.25.3.tar.gz # 进入源码文件夹 cd nginx-1.25.3

3. 配置编译选项(启用 SSL 支持)

./configure \ --prefix=/usr/local/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-pcre \ --with-file-aio \ --with-threads \ --add-module=../ngx_brotli

Nginx 编译参数介绍
基础路径和文件位置相关参数
  • --prefix=/usr/local/nginx
    • 说明:指定 Nginx 的安装目录。
    • 默认值/usr/local/nginx
    • 作用:所有相关的文件(如配置文件、日志文件等)都会在这个目录下创建。
  • --sbin-path=/usr/sbin/nginx
    • 说明:指定 Nginx 可执行文件(nginx)的安装路径。
    • 默认值--prefix/sbin/nginx
    • 作用:此参数将其安装到 /usr/sbin/nginx
  • --conf-path=/etc/nginx/nginx.conf
    • 说明:指定 Nginx 配置文件的路径。
    • 默认值--prefix/conf/nginx.conf
    • 作用:此参数将其设置为 /etc/nginx/nginx.conf
  • --pid-path=/var/run/nginx.pid
    • 说明:指定 Nginx 进程 ID 文件的路径。
    • 默认值--prefix/logs/nginx.pid
    • 作用:此参数将其设置为 /var/run/nginx.pid
  • --lock-path=/var/run/nginx.lock
    • 说明:指定 Nginx 的锁文件路径,用于防止多个 Nginx 实例同时运行。
    • 默认值--prefix/logs/nginx.lock
    • 作用:此参数将其设置为 /var/run/nginx.lock
  • --error-log-path=/var/log/nginx/error.log
    • 说明:指定 Nginx 的错误日志文件路径。
    • 默认值--prefix/logs/error.log
    • 作用:此参数将其设置为 /var/log/nginx/error.log
  • --http-log-path=/var/log/nginx/access.log
    • 说明:指定 Nginx 的访问日志文件路径。
    • 默认值--prefix/logs/access.log
    • 作用:此参数将其设置为 /var/log/nginx/access.log
功能模块相关参数
  • --with-http_ssl_module
    • 说明:启用 SSL/TLS 支持,允许 Nginx 使用 HTTPS 协议。
    • 作用:这是运行 HTTPS 网站所必需的模块。
  • --with-http_v2_module
    • 说明:启用 HTTP/2 支持,允许 Nginx 使用 HTTP/2 协议。
    • 作用:HTTP/2 是 HTTP 协议的升级版本,可以提高网页加载速度。
  • --with-http_realip_module
    • 说明:启用 http_realip 模块,允许 Nginx 使用 X-Real-IP 或 X-Forwarded-For 头来获取客户端的真实 IP 地址。
    • 作用:这对于使用反向代理时非常有用。
  • --with-http_stub_status_module
    • 说明:启用 http_stub_status 模块,允许 Nginx 提供一个用于监控的页面,显示当前服务器的状态信息(如请求处理情况、连接数等)。
  • --with-http_gzip_static_module
    • 说明:启用 http_gzip_static 模块,允许 Nginx 提供预压缩的 .gz 文件。
    • 作用:以减少响应时间并节省带宽。
  • --with-pcre
    • 说明:启用 PCRE(Perl Compatible Regular Expressions)支持,用于 Nginx 的正则表达式功能。
    • 作用:这是处理 URL 重写等任务所必需的。
  • --with-file-aio
    • 说明:启用文件异步 I/O 支持,允许 Nginx 使用异步 I/O 操作。
    • 作用:提高性能。
  • --with-threads
    • 说明:启用线程支持,允许 Nginx 使用线程来处理请求。
    • 作用:提高多核 CPU 的利用率。
  • --add-module=../ngx_brotli
    • 说明:添加第三方模块 ngx_brotli,用于支持 Brotli 压缩算法。
    • 作用:Brotli 是一种高效的压缩算法,可以进一步减少响应数据的大小。
4. 编译并安装

make -j$(nproc) sudo make install

5. 配置系统服务
5.1 创建 systemd 服务文件:

sudo tee /etc/systemd/system/nginx.service <<EOF [Unit] Description=The nginx HTTP and reverse proxy server After=network.target [Service] Type=forking PIDFile=/var/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/usr/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT \$MAINPID TimeoutStopSec=5 PrivateTmp=true [Install] WantedBy=multi-user.target EOF

5.2 启动并设置开机自启:

sudo systemctl daemon-reload # 重新加载 systemd 守护进程 sudo systemctl enable nginx # 将 Nginx 服务配置为开机自启动 sudo systemctl start nginx # 启动 Nginx

6. 配置 Brotli 和 Gzip 压缩

编辑 Nginx 配置文件:


vim /etc/nginx/nginx.conf

在 http {} 块中添加以下内容:


# Brotli 全局压缩配置(现代浏览器优先) brotli on; # 启用 Brotli 压缩 brotli_static on; # 优先使用预压缩的 .br 文件 brotli_comp_level 6; # 压缩级别 1-11(6 是性能与压缩率的平衡点) brotli_min_length 256; # 只压缩大于 256 字节的文件 brotli_types text/plain text/css text/javascript application/javascript application/json application/xml application/x-javascript application/xhtml+xml image/svg+xml; # Gzip 全局压缩配置(兼容旧版浏览器) gzip on; # 启用 Gzip 压缩 gzip_static on; # 优先使用预压缩的 .gz 文件 gzip_comp_level 6; # 压缩级别 1-9(6 是性能与压缩率的平衡点) gzip_min_length 256; # 只压缩大于 256 字节的文件 gzip_types text/plain text/css text/javascript application/javascript application/json application/xml application/x-javascript application/xhtml+xml image/svg+xml;

检查文件是否配置成功


sudo nginx -t # 应输出: # nginx: the configuration file /etc/nginx/nginx.conf syntax is ok # nginx: configuration file /etc/nginx/nginx.conf test is successful

重新加载配置


sudo systemctl reload nginx

7. 验证安装

检查 Nginx 版本:


nginx -v

验证 Brotli 是否工作:


curl -H "Accept-Encoding: br" -I http://localhost | grep -i content-encoding # 应该返回 content-encoding: br

8. 配置 HTTP 和 HTTPS
8.1 备份配置文件

cd /etc/nginx cp nginx.conf nginx.conf.back # 备份一份

8.2 编辑 Nginx 主配置文件

vim nginx.conf

在 http {} 块内添加以下内容(仅仅配置 HTTPS):


server { listen 80; server_name pzhdv.cn www.pzhdv.cn; # 替换为你的域名或 IP 地址 # 将所有 HTTP 请求重定向到 HTTPS return 301 https://$host$request_uri; } server { listen 443 ssl; server_name pzhdv.cn www.pzhdv.cn; # SSL 配置 ssl_certificate /usr/local/resource/ssl/pzhdv.cn.pem; # 证书路径 ssl_certificate_key /usr/local/resource/ssl/pzhdv.cn.key; # 证书路径 location / { root html; index index.html index.htm; } }

9. 验证配置

测试配置文件语法:


sudo nginx -t

应输出:


nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

10. 重载配置

sudo systemctl reload nginx

11. 访问测试
  • HTTP:浏览器访问 http://你的服务器IP
  • HTTPS:浏览器访问 https://域名

以上步骤完成了 Nginx 的安装、Brotli 和 Gzip 压缩的配置,以及 HTTP 和 HTTPS 的设置。

12. 常用操作 Nginx 的系统命令

# 检查 Nginx 文件是否配置成功 sudo nginx -t # 查看 Nginx 服务的运行状态 sudo systemctl status nginx # 启动 Nginx 服务 sudo systemctl start nginx # 停止 Nginx 服务 sudo systemctl stop nginx # 重启 Nginx 服务 sudo systemctl restart nginx # 重新加载 Nginx 配置文件 sudo systemctl reload nginx # 检查 Nginx 服务是否设置为开机自动启动 sudo systemctl is-enabled nginx # 设置 Nginx 服务为开机自启动 sudo systemctl enable nginx # 禁止 Nginx 服务为开机自启动 sudo systemctl disable nginx # 重新加载 systemd 配置 sudo systemctl daemon-reload # 验证是否开机自启动 sudo reboot # 重启系统 sudo systemctl status nginx # 查看状态

卸载 Nginx(通过 wget 安装的)

1. 停止 Nginx 服务

首先,确保 Nginx 服务已经停止运行:


sudo systemctl stop nginx

或者,如果你没有使用 systemctl,可以直接使用 Nginx 的停止命令:


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

2. 禁用 Nginx 服务(如果使用了 systemctl

如果你为 Nginx 创建了 systemd 服务文件,禁用它以防止开机自启:


sudo systemctl disable nginx

如果你为 Nginx 创建了启动脚本或 systemd 服务文件,也需要删除它们:


sudo rm -f /etc/systemd/system/nginx.service sudo systemctl daemon-reload

3. 查找并删除 Nginx 相关文件

通过 wget 安装的 Nginx 通常会被安装到 /usr/local/nginx 目录下。你可以通过以下命令删除这个目录:


sudo rm -rf /usr/local/nginx

此外,你还需要删除 Nginx 的配置文件和日志文件。这些文件通常位于 /etc/nginx 和 /var/log/nginx 目录下。删除这些目录:


sudo rm -rf /etc/nginx sudo rm -rf /var/log/nginx

如果你在安装过程中将配置文件放在了其他位置,请确保删除那些配置文件。

3. 查找并删除 Nginx 相关文件

通过 wget 安装的 Nginx 通常会被安装到 /usr/local/nginx 目录下。你可以通过以下命令删除这个目录:


sudo rm -rf /usr/local/nginx

此外,你还需要删除 Nginx 的配置文件和日志文件。这些文件通常位于 /etc/nginx 和 /var/log/nginx 目录下。删除这些目录:


sudo rm -rf /etc/nginx sudo rm -rf /var/log/nginx

如果你在安装过程中将配置文件放在了其他位置,请确保删除那些配置文件。

4. 删除 Nginx 的安装包和源码

如果你在安装过程中下载了 Nginx 的源码包,也需要删除它。通常,源码包会被下载到 /usr/local/softpackage 或其他临时目录中。删除下载的文件:


sudo rm -rf /usr/local/softpackage/nginx-*.tar.gz sudo rm -rf /usr/local/softpackage/nginx-*

6. 清理残留文件

使用 find 命令查找系统中可能残留的 Nginx 相关文件:


sudo find / -name "*nginx*"

根据输出结果,删除所有与 Nginx 相关的文件和目录。例如:


sudo rm -rf /usr/local/nginx sudo rm -rf /etc/nginx sudo rm -rf /var/log/nginx sudo rm -rf /var/cache/nginx sudo rm -rf /var/lib/nginx

7. 验证是否卸载成功

执行以下命令,检查是否还有 Nginx 的进程或服务:


ps -ef | grep nginx

如果没有输出,说明 Nginx 已经完全卸载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值