Nginx 安装教程:CentOS 系统 – wiki基地

Nginx 安装教程:CentOS 系统深度指南

Nginx 是一款高性能的 HTTP 和反向代理服务器,以及 IMAP/POP3/SMTP 代理服务器。因其轻量级、高并发、低资源消耗等特性,广泛应用于各种 Web 服务场景。本文将详细介绍如何在 CentOS 系统上安装和配置 Nginx,涵盖从准备工作到优化配置的完整流程。

一、准备工作

在开始安装 Nginx 之前,需要进行一些准备工作:

  1. 系统更新: 确保你的 CentOS 系统是最新的,以避免潜在的兼容性问题。使用以下命令更新系统:

bash
sudo yum update -y

  1. 安装必要的工具: Nginx 的编译安装需要一些必要的工具,使用以下命令安装:

bash
sudo yum install gcc make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel -y

  • gcc, make, automake, autoconf, libtool: 编译工具链,用于编译 Nginx 源码。
  • pcre, pcre-devel: Perl Compatible Regular Expressions 库,用于 Nginx 处理正则表达式。
  • zlib, zlib-devel: 压缩库,用于 Nginx 支持 gzip 压缩。
  • openssl, openssl-devel: SSL/TLS 加密库,用于 Nginx 支持 HTTPS。

  • 创建 Nginx 用户和组 (可选): 为了安全起见,建议创建一个专门的 nginx 用户和组来运行 Nginx 服务。

bash
sudo useradd -M -s /sbin/nologin nginx

二、下载 Nginx 源码

你可以从 Nginx 的官方网站下载最新的稳定版本源码包。 也可以使用 wget 命令直接下载:

bash
wget http://nginx.org/download/nginx-1.23.4.tar.gz # 替换成你需要的版本号

三、编译安装 Nginx

  1. 解压源码包:

bash
tar -zxvf nginx-1.23.4.tar.gz # 替换成你下载的版本号

  1. 进入解压后的目录:

bash
cd nginx-1.23.4 # 替换成你下载的版本号

  1. 配置编译选项: 使用 ./configure 命令配置编译选项。以下是一些常用的选项:

bash
./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_stub_status_module

  • --prefix=/usr/local/nginx: 指定 Nginx 的安装目录。
  • --user=nginx--group=nginx: 指定运行 Nginx 的用户和组。
  • --with-http_ssl_module: 启用 HTTPS 支持。
  • --with-http_v2_module: 启用 HTTP/2 支持.
  • --with-http_gzip_static_module: 启用预压缩静态文件支持.
  • --with-http_realip_module: 获取客户端真实IP.
  • --with-http_stub_status_module: 启用状态监控页面.

您可以根据实际需求添加或修改其他编译选项。运行 ./configure --help 查看所有可用选项。

  1. 编译和安装:

bash
make
sudo make install

四、配置 Nginx

Nginx 的配置文件位于 /usr/local/nginx/conf/nginx.conf。 你可以使用任何文本编辑器打开并修改配置文件。

以下是一个简单的 Nginx 配置示例:

“`nginx
user nginx;
worker_processes auto;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

server {
    listen       80;
    server_name  your_domain.com; # 替换成你的域名或IP地址

    location / {
        root   /usr/local/nginx/html; #  网站根目录
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/local/nginx/html;
    }
}

}

“`

五、启动、停止和重启 Nginx

  1. 启动 Nginx:

bash
sudo /usr/local/nginx/sbin/nginx

  1. 停止 Nginx:

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

  1. 重启 Nginx:

bash
sudo /usr/local/nginx/sbin/nginx -s reload

  1. 测试 Nginx 配置: 在修改配置文件后,可以使用以下命令测试配置是否正确:

bash
sudo /usr/local/nginx/sbin/nginx -t

如果配置正确,会输出 syntax is oktest is successful

六、设置 Nginx 开机启动

为了方便管理,可以将 Nginx 设置为开机自动启动。

  1. 创建 systemd service 文件:

bash
sudo vi /etc/systemd/system/nginx.service

  1. 添加以下内容到 nginx.service 文件:

“`ini
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
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
“`

  1. 重新加载 systemd:

bash
sudo systemctl daemon-reload

  1. 启用 nginx 服务:

bash
sudo systemctl enable nginx

  1. 启动 nginx 服务:

bash
sudo systemctl start nginx

七、Nginx 常用命令

  • nginx -t: 测试配置文件语法.
  • nginx -s reload: 重新加载配置文件,无需停止服务.
  • nginx -s stop: 立即停止 Nginx.
  • nginx -s quit: 优雅地停止 Nginx,等待所有请求处理完毕后再停止.
  • nginx -V: 显示 Nginx 的版本信息和编译参数.

八、优化配置 (进阶)

Nginx 的性能优化是一个复杂的话题,涉及到许多方面。以下是一些常见的优化措施:

  • 调整 worker_processes 和 worker_connections: 根据服务器的 CPU 核心数和内存大小,调整 worker_processes 和 worker_connections 的值,以充分利用服务器资源。
  • 启用 gzip 压缩: 使用 gzip 压缩可以减少传输的数据量,提高页面加载速度。
  • 缓存静态文件: 缓存静态文件可以减少服务器的负载,提高访问速度。
  • 配置反向代理: 使用 Nginx 作为反向代理,可以提高后端服务器的性能和安全性.

九、总结

本文详细介绍了在 CentOS 系统上安装和配置 Nginx 的完整流程,涵盖了准备工作、源码编译安装、配置、启动和停止、开机启动以及一些常用的命令和优化技巧。希望本文能帮助你快速搭建和配置 Nginx 服务器。 请根据你的实际需求调整 Nginx 的配置,并持续学习和探索更多高级功能和优化策略。 Remember to replace placeholders like your_domain.com and nginx-1.23.4.tar.gz with your actual values.

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部