从零开始在Linux上安装Nginx

从零开始在 Linux 上安装 Nginx

Nginx 是一款高性能的 HTTP 和反向代理服务器,以及 IMAP/POP3/SMTP 代理服务器。它以轻量级、高并发、低资源消耗而闻名,被广泛应用于各种 Web 应用场景,从简单的静态网站到复杂的动态应用。本文将详细介绍如何在 Linux 系统上从零开始安装 Nginx,涵盖了从准备工作到配置优化的完整流程。

一、准备工作

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

  1. 选择合适的 Linux 发行版: Nginx 支持大多数主流 Linux 发行版,例如 CentOS、Ubuntu、Debian 等。本文以 CentOS 7 为例进行演示,其他发行版的安装过程类似,只是具体的命令可能略有不同。

  2. 获取 root 权限: 安装 Nginx 需要 root 权限,可以使用 susudo 命令切换到 root 用户。

  3. 更新系统软件包: 为了确保系统拥有最新的软件包和依赖库,建议在安装 Nginx 之前更新系统。执行以下命令:

bash
yum update -y # CentOS
apt update && apt upgrade -y # Ubuntu/Debian

  1. 安装必要的依赖库: Nginx 的编译和运行需要一些依赖库,例如 gcc、pcre、zlib、openssl 等。执行以下命令安装这些依赖库:

bash
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel # CentOS
apt install -y build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev # Ubuntu/Debian

二、下载 Nginx 源码包

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

bash
wget http://nginx.org/download/nginx-1.23.1.tar.gz # 将版本号替换为实际下载的版本

三、编译安装 Nginx

  1. 解压源码包:

bash
tar -zxvf nginx-1.23.1.tar.gz

  1. 进入解压后的目录:

bash
cd nginx-1.23.1

  1. 配置编译选项: 使用 ./configure 命令配置编译选项。可以根据实际需求自定义编译选项,例如指定安装路径、添加模块等。以下是一些常用的配置选项:

bash
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module

  • --prefix=/usr/local/nginx: 指定 Nginx 的安装路径。
  • --with-http_ssl_module: 启用 HTTPS 支持。
  • --with-http_v2_module: 启用 HTTP/2 支持。
  • --with-http_gzip_static_module: 启用预压缩静态文件的功能。

可以运行 ./configure --help 查看所有可用的配置选项。

  1. 编译:

bash
make

  1. 安装:

bash
make install

四、配置 Nginx

Nginx 的配置文件位于 /usr/local/nginx/conf/nginx.conf (如果使用了自定义的安装路径,则配置文件位于相应的目录下)。可以使用文本编辑器打开并编辑该文件。以下是一个简单的 Nginx 配置示例:

```nginx
worker_processes 1;

events {
worker_connections 1024;
}

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

sendfile        on;
keepalive_timeout  65;

server {
    listen       80;
    server_name  localhost;

    location / {
        root   html;
        index  index.html index.htm;
    }

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

}
```

五、启动、停止和重启 Nginx

  1. 启动 Nginx:

bash
/usr/local/nginx/sbin/nginx # 使用实际的安装路径

  1. 停止 Nginx:

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

  1. 重启 Nginx:

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

六、验证安装

在浏览器中访问服务器的 IP 地址或域名,如果能够看到 Nginx 的欢迎页面,则说明 Nginx 安装成功。

七、配置优化

Nginx 提供了丰富的配置选项,可以根据实际需求进行优化,例如调整 worker 进程数量、缓存设置、超时时间等。以下是一些常用的优化技巧:

  • 调整 worker_processes: 建议将 worker_processes 的数量设置为 CPU 核心数或略大于 CPU 核心数。

  • 调整 worker_connections: worker_connections 指定每个 worker 进程可以处理的最大连接数。

  • 启用 gzip 压缩: gzip 压缩可以减少网络传输的数据量,提高页面加载速度。

  • 配置缓存: 缓存可以减少服务器的负载,提高响应速度。

  • 优化超时时间: 根据实际情况调整超时时间,避免连接超时导致的错误。

八、其他常用命令

  • 测试配置文件语法: /usr/local/nginx/sbin/nginx -t
  • 查看 Nginx 版本: /usr/local/nginx/sbin/nginx -v
  • 发送信号给 Nginx: /usr/local/nginx/sbin/nginx -s <signal> (例如:stop, quit, reload, reopen)

九、创建 Systemd 服务文件 (可选)

为了方便管理 Nginx 服务,可以创建一个 Systemd 服务文件。

  1. 创建服务文件:

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

  1. 添加以下内容到服务文件中, 将 /usr/local/nginx 替换为你的 Nginx 安装路径:

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

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid # 修改为你的 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
systemctl daemon-reload

  1. 启动、停止和重启 Nginx:

bash
systemctl start nginx
systemctl stop nginx
systemctl restart nginx

  1. 设置开机启动:

bash
systemctl enable nginx

通过以上步骤,就可以在 Linux 系统上成功安装和配置 Nginx。 记住根据你的实际需求调整配置,并定期更新 Nginx 以获得最新的安全补丁和性能改进。 希望这篇文章对你有所帮助!

THE END