为了账号安全,请及时绑定邮箱和手机立即绑定

NGINX从入门到精通:你的终极攻略指南

掌握 NGINX 的强大功能:从搭建第一个 NGINX 服务器到高级负载均衡、安全配置和优化。

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
配置您的第一个 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哈希这些负载均衡方法之间进行切换。

高级掌握:安全性与优化
开启 HTTPS:

用 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服务器的潜力!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消