NGINX 在现代 web 架构中变得非常流行。以其高性能、高可扩展性和低资源消耗而著称,NGINX 既可用作 web 服务器,也可作为反向代理和负载均衡器。NGINX 最初于 2004 年 发布,现在为互联网的很大一部分提供服务,在关键性能指标上胜过传统的 web 服务器,如 Apache。
无论你是开发者还是管理员,掌握 NGINX 对于构建高效且稳健的网站应用至关重要。
理解 NGINX:基础知识NGINX 是一个开源软件,因其事件驱动和异步架构而引人注目。这种设计使它能够处理数千个并发连接,非常适合处理高流量,只需少量硬件资源。
主要特点:
- Web 服务器:高效提供静态和动态内容。
- 反向代理:保护后端服务器并优化其性能。
- 负载均衡器:智能分配流量到多个服务器。
- HTTP 缓存:加快内容分发速度。
它的多功能性结合简洁的配置系统,使得 NGINX 备受 DevOps 从业者的青睐。
开始使用 NGINX 安装:首先,您需要在系统上安装 NGINX。以下是各个平台的安装步骤:
-
在 Debian 及其衍生发行版(如 Ubuntu)上:
sudo apt update sudo apt install nginx
-
在 Fedora 上:
sudo dnf install nginx
-
在 macOS 上使用 Homebrew 包管理器:
brew install nginx
- 在 Windows 上,可以使用 Windows Subsystem for Linux (WSL) 或直接从 NGINX 官方网站下载并安装 NGINX。使用 WSL 的方法如下:
wsl --install sudo apt update sudo apt install nginx
适用于 Ubuntu/Debian:
sudo apt update # 更新软件包列表以确保所有最新的软件包信息可用
sudo apt install nginx # 安装 Nginx 网络服务器
如果是 CentOS 或 RHEL 用户:
sudo yum install epel-release
sudo yum install nginx
# 安装epel-release和nginx
对于 Windows:
从 官方 NGINX 网站 下载预编译的二进制文件即可。
安装完成后,你可以用下面的常用命令来控制NGINX:
- 启动 Nginx:
sudo systemctl start nginx
- 停止 Nginx:
sudo systemctl stop nginx
- 重启 Nginx:
sudo systemctl restart nginx
- 检查 Nginx 状态:
sudo systemctl status nginx
要搭建第一个静态网站,可以按照以下步骤:
- 创建文件夹结构
sudo mkdir -p /var/www/example.com/html # 创建必要的文件夹
sudo chmod -R 755 /var/www/example.com # 设置文件夹权限
- 添加一个简单的HTML页面,
echo "<h1>欢迎来到NGINX</h1>" | sudo tee /var/www/example.com/html/index.html
- 更新配置文件内容:
编辑/etc/nginx/sites-available/example.com
,
服务器 {
监听 80;
服务器名称 example.com www.example.com;
根目录 /var/www/example.com/html;
索引文件 index.html;
}
- 启用站点并重新加载Nginx配置:
# 创建符号链接
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
# 检查Nginx配置文件的正确性
sudo nginx -t
# 重新加载Nginx配置而无需重启服务
sudo systemctl reload nginx
访问 http://your-server-ip/
在浏览器里查看自己的网站!
反向代理会把客户端的请求转给后端服务器, 在你的 server
块里添加此配置,确保术语与技术文档中的使用一致。
location / {
proxy_pass http://127.0.0.1:8080; # 将请求代理到本地8080端口
proxy_set_header Host $host; # 设置主机头为客户端的主机名
proxy_set_header X-Real-IP $remote_addr; # 设置X-Real-IP头为客户端的实际IP地址
}
负载均衡设置
参考此示例在服务器之间分散流量:
upstream 后端 {
server server1.example.com;
server server2.example.com;
}
# 监听80端口
server {
listen 80;
# 对于所有请求,代理到后端服务器
location / {
proxy_pass http://backend;
}
}
你可以通过更新upstream
配置块,在轮循、最少连接数和IP哈希这些负载均衡方法之间进行切换。
用 Let's Encrypt 来保护你的网站安全
在终端中运行以下命令:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
这些命令的目的是安装Certbot及其与Nginx相关的插件,并为指定的域名配置Certbot。第一个命令会安装Certbot及其Nginx插件,第二个命令用于配置Certbot以保护example.com和www.example.com域名。
限速防止 DDoS 攻击的方法之一是采用速率限制:
http {
_req_limit区域 $binary_remote_addr 区域=one:10m 率=5r/s; // 限速区域 ($binary_remote_addr zone=one:10m rate=5r/s)
服务器 {
位置 根目录 {
限制请求 区域=one; // 限制请求 (zone=one)
}
}
}
缓存:性能优化
启用缓存可加速您的网站
location / {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m;
proxy_cache my_cache;
proxy_pass http://backend;
}
解决和调试 NGINX 的问题
如果遇到问题,就先试试这些常用的工具吧
记录- 访存日志:
/var/log/nginx/access.log
- 错存日志:
/var/log/nginx/error.log
运行此命令来测试 Nginx 配置是否正确:`sudo nginx -t`
调试:使用 Curl 调试
curl -I http://你的服务器IP/
结论是:成为一名NGINX专家
从安装到高级配置,本指南将帮助你掌握 NGINX 所需的基础和高级知识。为了进一步提升你的技能水平,你可以探索官方文档,通过实际场景进行尝试,并参与充满活力的 NGINX 社区交流。
精通NGINX,释放高性能Web服务器的潜力!
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章