在现代网站的架构中,Nginx 是一款非常流行且高效的 Web 服务器,它常常被用作负载均衡器、反向代理服务器和 HTTP 缓存。对于使用 Ubuntu 18.04 的开发者和系统管理员来说,安装和优化 Nginx 是保证服务器性能和稳定性的重要步骤。本文将详细介绍如何在 Ubuntu 18 上安装 Nginx,并提供一系列优化技巧,帮助你提升服务器性能、提高网站加载速度和增强安全性。

一、Nginx 的安装准备

在开始安装 Nginx 之前,首先需要确保你的系统是最新的。通过执行以下命令来更新 Ubuntu 的软件包列表:

sudo apt update
sudo apt upgrade

更新完毕后,安装 Nginx 非常简单,可以通过以下命令直接从 Ubuntu 的官方软件库中安装:

sudo apt install nginx

这将会安装最新稳定版本的 Nginx。安装完成后,可以通过以下命令检查 Nginx 是否安装成功:

nginx -v

如果一切顺利,命令会返回 Nginx 的版本号。

二、启动和管理 Nginx 服务

安装完 Nginx 后,我们可以启动服务,并设置其在系统启动时自动启动。使用以下命令启动 Nginx 服务:

sudo systemctl start nginx

如果想要让 Nginx 在系统启动时自动启动,可以执行:

sudo systemctl enable nginx

要停止 Nginx 服务,可以使用以下命令:

sudo systemctl stop nginx

查看 Nginx 服务的状态,可以使用:

sudo systemctl status nginx

此命令会显示 Nginx 服务的当前运行状态。

三、配置防火墙以允许 Nginx 访问

安装并启动 Nginx 后,可能需要配置防火墙以允许 HTTP 和 HTTPS 流量。如果你在服务器上启用了 UFW(Uncomplicated Firewall),可以通过以下命令允许 Nginx 访问:

sudo ufw allow 'Nginx Full'

此命令会自动配置 UFW 以允许 HTTP(端口80)和 HTTPS(端口443)流量。如果你只想允许 HTTP 流量,可以使用:

sudo ufw allow 'Nginx HTTP'

通过以下命令可以检查防火墙规则是否正确设置:

sudo ufw status

四、配置 Nginx

安装 Nginx 后,默认的配置文件存放在 "/etc/nginx/nginx.conf" 中,虚拟主机配置文件则位于 "/etc/nginx/sites-available/" 目录下。可以通过编辑这些文件来配置 Nginx。首先,检查默认的配置文件是否正常工作:

sudo nano /etc/nginx/nginx.conf

可以通过该文件进行一些基本的配置调整,例如修改工作进程的数量、日志记录等。修改完成后,记得保存并退出。

在 Nginx 配置文件中,你可以设置服务器的根目录、访问权限、日志记录等。假设你想要配置一个网站的虚拟主机,可以在 "/etc/nginx/sites-available/" 目录下创建一个新的配置文件:

sudo nano /etc/nginx/sites-available/yourdomain.com

配置文件内容示例如下:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    
    root /var/www/yourdomain.com;
    index index.html index.htm;
    
    location / {
        try_files $uri $uri/ =404;
    }
}

创建好虚拟主机配置文件后,使用以下命令将其链接到 "sites-enabled" 目录:

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

最后,检查 Nginx 配置是否正确:

sudo nginx -t

如果配置正确,可以重新加载 Nginx 使配置生效:

sudo systemctl reload nginx

五、Nginx 性能优化

在 Nginx 的安装和基本配置完成后,接下来的重点是优化 Nginx 性能。以下是几个优化 Nginx 的常见技巧:

1. 调整工作进程数

根据服务器的 CPU 核心数调整 Nginx 的工作进程数,能够提升性能。通常情况下,设置工作进程数等于 CPU 核心数是一个不错的选择。在 "nginx.conf" 配置文件中,修改 "worker_processes" 参数:

worker_processes auto;

这个设置会使 Nginx 自动根据 CPU 核心数来调整工作进程数。

2. 使用缓存机制

为提高 Nginx 的响应速度,可以启用静态文件缓存。例如,你可以通过 "expires" 指令设置文件的缓存时间:

location /images/ {
    expires 30d;
}

这将会使 "/images/" 目录下的文件在客户端缓存 30 天。

3. 压缩输出内容

启用 Gzip 压缩可以有效减少传输的数据量,从而提高网站的加载速度。在 "nginx.conf" 文件中启用 Gzip:

gzip on;
gzip_types text/plain application/xml text/css application/javascript;
gzip_min_length 1000;

这会启用对指定 MIME 类型的文件进行压缩,从而减少带宽的使用。

4. 调整缓存和缓冲区

通过调整缓冲区的大小来优化 Nginx 对静态资源的处理效率。例如,增加 "client_body_buffer_size" 和 "client_max_body_size" 可以提高大文件上传的处理能力:

client_max_body_size 10M;
client_body_buffer_size 128k;

六、增强安全性

为了确保服务器的安全性,Nginx 提供了多种安全设置。以下是一些常见的安全配置:

1. 禁止访问敏感文件

为了防止用户访问敏感文件,如 ".htaccess" 或 ".git" 文件,可以在 Nginx 配置文件中添加如下内容:

location ~ /\. {
    deny all;
}

2. 禁用服务器信息泄露

为了防止 Nginx 返回版本信息或其他敏感信息,可以禁用这些信息的显示:

server_tokens off;

3. 限制 HTTP 请求头

可以通过限制 HTTP 请求头的大小来避免潜在的 DoS 攻击:

http {
    client_header_buffer_size 1k;
    large_client_header_buffers 4 4k;
}

七、总结

本文详细介绍了在 Ubuntu 18.04 上安装和优化 Nginx 的步骤。从安装和配置基本的 Nginx 服务,到通过调整配置文件提升服务器性能,再到采取安全措施保障网站安全,所有步骤都已经覆盖。通过这些优化措施,你可以使你的 Nginx 服务更加高效、安全,并且为用户提供更快速、更稳定的访问体验。

在进行 Nginx 优化时,请根据自己的实际需求进行配置调整。无论是为静态网站加速、为高流量网站提供负载均衡,还是为复杂的 Web 应用配置缓存,Nginx 都能满足你的需求。希望本文能帮助你在 Ubuntu 18 上成功安装和优化 Nginx。