如何在 Linux 上安装 Nginx Web 服务器?

360影视 国产动漫 2025-04-10 13:38 3

摘要:Nginx(发音为 "engine-x")是一款由 Igor Sysoev 于 2004 年开发的开源 Web 服务器软件。它以高性能、稳定性、丰富的功能集和简单的配置文件著称。Nginx 不仅可以作为 Web 服务器提供静态内容,还能胜任反向代理服务器、负载

Nginx(发音为 "engine-x")是一款由 Igor Sysoev 于 2004 年开发的开源 Web 服务器软件。它以高性能、稳定性、丰富的功能集和简单的配置文件著称。Nginx 不仅可以作为 Web 服务器提供静态内容,还能胜任反向代理服务器、负载均衡器和 HTTP 缓存等多种角色。相比传统的 Apache 服务器,Nginx 在处理高并发连接时表现出色,因此被广泛应用于现代 Web 架构中,例如支持 Netflix、GitHub 等知名网站。

在 Linux 环境下安装 Nginx 是许多技术人员的首选,因为 Linux 提供了稳定、灵活且开源的平台,能够充分发挥 Nginx 的性能优势。本文将以 Ubuntu 22.04 LTS 为例,详细介绍 Nginx 的安装过程,同时也会提到适用于其他发行版(如 CentOS 或 Debian)的变体方法。

在安装 Nginx 之前,您需要完成一些准备工作,以确保安装过程顺利进行。

Nginx 支持几乎所有的主流 Linux 发行版,包括 Ubuntu、CentOS、Debian、Fedora 等。本文以 Ubuntu 22.04 LTS 为例,因为它是一个流行的服务器操作系统,具有广泛的社区支持。如果您使用其他发行版,只需根据其包管理器(如 CentOS 的 yum 或 dnf)调整命令即可。

确保您的系统满足以下基本要求:

至少 512MB 内存(推荐 1GB 或更多)。稳定的网络连接,用于下载软件包。具有管理员权限的用户账户(通过 sudo 或 root)。

在安装新软件之前,更新系统软件包是一个良好的习惯,以确保所有依赖项都是最新的。在 Ubuntu 上,运行以下命令:

sudo apt updatesudo apt upgrade -ysudo apt update:更新软件包列表。sudo apt upgrade -y:升级已安装的软件包,-y 表示自动确认。

Nginx 的安装可能需要一些基本工具和库,尤其是在从源代码编译时。运行以下命令安装常用依赖项:

sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-devbuild-essential:包含编译工具,如 gcc 和 make。libpcre3 和 libpcre3-dev:提供正则表达式支持。zlib1g 和 zlib1g-dev:支持 gzip 压缩。libssl-dev:支持 SSL/TLS 功能。

完成这些准备后,您就可以开始安装 Nginx 了。

在 Linux 上安装 Nginx 有两种主要方法:使用包管理器安装和从源代码编译安装。以下将详细介绍这两种方法,您可以根据需求选择适合的方式。

对于大多数用户来说,使用包管理器安装是更简单、更快捷的选择,因为它会自动处理依赖项并提供系统集成支持。以下是在 Ubuntu 上安装 Nginx 的步骤:

Ubuntu 默认仓库中的 Nginx 版本可能不是最新的。如果您需要最新稳定版,可以添加 Nginx 官方仓库:

sudo add-apt-repository ppa:nginx/stablesudo apt updateadd-apt-repository:添加第三方软件源。ppa:nginx/stable:Nginx 官方提供的稳定版 PPA。

运行以下命令安装 Nginx:

sudo apt install -y nginx

安装完成后,Nginx 会自动安装到系统中,默认配置文件位于 /etc/nginx/。

安装完成后,验证 Nginx 是否成功安装并检查版本:

nginx -v

输出类似:nginx version: nginx/1.18.0 (Ubuntu)。

安装后,Nginx 可能不会自动启动。使用 systemctl 启动服务:

sudo systemctl start nginx

检查服务状态:

sudo systemctl status nginx

输出中如果显示 active (running),说明 Nginx 已成功启动。

设置开机自启

为了确保 Nginx 在系统重启后自动运行,启用服务:

sudo systemctl enable nginx2、从源代码编译安装

如果您需要自定义 Nginx 的功能(如添加特定模块)或使用最新版本,可以选择从源代码编译安装。以下是详细步骤:

访问 Nginx 官方网站https://nginx.org/en/download.html,下载最新稳定版的源代码包。例如:

wget https://nginx.org/download/nginx-1.24.0.tar.gzwget:下载文件的命令行工具。nginx-1.24.0.tar.gz:截至 2023 年 10 月的最新稳定版。解压源代码包

解压下载的文件并进入目录:

tar -zxvf nginx-1.24.0.tar.gzcd nginx-1.24.0tar -zxvf:解压 tar.gz 文件,-z 表示 gzip 格式,-x 表示解压,-v 表示显示过程,-f 指定文件。配置编译选项

在编译之前,需要配置 Nginx 的安装路径和模块。运行以下命令:

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-stream--prefix=/usr/local/nginx:指定安装路径。--with-http_ssl_module:启用 SSL 支持。--with-http_v2_module:启用 HTTP/2 协议。--with-stream:启用 TCP/UDP 代理支持。

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

编译和安装

配置完成后,编译并安装 Nginx:

makesudo make installmake:编译源代码。sudo make install:将编译好的文件安装到指定目录。

安装完成后,运行以下命令检查 Nginx 是否可用:

/usr/local/nginx/sbin/nginx -v

为了便于管理,可以将 Nginx 集成到 systemd 中。创建服务文件:

sudo nano /etc/systemd/system/nginx.service

粘贴以下内容:

[Unit]Description=Nginx Web ServerAfter=network.target[Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s stopPIDFile=/usr/local/nginx/logs/nginx.pid[Install]WantedBy=multi-user.target

保存并退出后,重新加载 systemd 并启动服务:

sudo systemctl daemon-reloadsudo systemctl start nginxsudo systemctl enable nginx

至此,Nginx 安装完成,您可以根据需要选择上述任一方法。

配置 Nginx

安装完成后,您需要配置 Nginx 以满足特定的需求。Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf(包管理器安装)或 /usr/local/nginx/conf/nginx.conf(源代码安装)。

基本配置

打开主配置文件:

sudo nano /etc/nginx/nginx.conf

默认配置可能如下:

user www-data;worker_processes auto;pid /run/nginx.pid;events { worker_connections 768;}http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;}

以下是一些关键配置项的说明:

user www-data:指定运行 Nginx 的用户,通常为 www-data 或 nginx。worker_processes auto:设置 worker 进程数,auto 表示根据 CPU 核心数自动调整。worker_connections 768:每个 worker 进程的最大连接数。sendfile on:启用高效文件传输。gzip on:启用压缩,减少带宽使用。

保存配置文件后,测试语法是否正确:

sudo nginx -t

如果输出显示 syntax is ok 和 test is successful,说明配置无误。

配置虚拟主机

Nginx 支持虚拟主机,允许在一台服务器上托管多个网站。以下是配置虚拟主机的步骤:

在 /etc/nginx/sites-available/ 目录下创建一个新文件,例如:

sudo nano /etc/nginx/sites-available/example.com.conf

添加以下内容:

server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.html index.htm; location / { try_files $uri $uri/ =404; }}listen 80:监听 80 端口。server_name:指定域名。root:网站根目录。index:默认首页文件。try_files:尝试查找文件,若不存在返回 404。创建网站根目录

创建并设置权限:

sudo mkdir -p /var/www/example.comsudo echo "

Welcome to example.com

" > /var/www/example.com/index.htmlsudo chown -R www-data:www-data /var/www/example.com启用虚拟主机

将配置文件链接到 sites-enabled 目录:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

应用配置更改:

sudo systemctl reload nginx

为了提供安全的 HTTPS 服务,您可以使用 Let's Encrypt 免费证书。

sudo apt install -y certbot python3-certbot-nginx

运行以下命令自动获取并配置证书:

sudo certbot --nginx -d example.com -d www.example.com

按照提示输入邮箱并同意条款,Certbot 会自动修改 Nginx 配置。

验证 HTTPS

添加 cron 任务以自动续期证书:

sudo crontab -e

添加以下行:

0 0 * * * /usr/bin/certbot renew --quiet测试 Nginx

安装和配置完成后,测试 Nginx 是否正常工作至关重要。

运行以下命令:

确保状态为 active (running)。

查看日志

检查访问和错误日志:

sudo tail -f /var/log/nginx/access.logsudo tail -f /var/log/nginx/error.logtail -f:实时查看日志文件。检查配置文件语法:sudo nginx -t查看错误日志:sudo cat /var/log/nginx/error.log无法访问网站检查防火墙设置:sudo ufw allow 80sudo ufw allow 443sudo ufw status

来源:wljslmz一点号

相关推荐