【DevOps】Nginx:高性能的Web服务器和反向代理服务器

麻花痒  金牌会员 | 2024-6-9 14:04:01 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 552|帖子 552|积分 1656

目录

一、Nginx简介
二、Nginx的应用场景
三、Nginx的安装过程
3.1 更新软件包列表
3.2 安装Nginx
3.3 验证Nginx安装
3.4 管理Nginx服务
3.5 配置防火墙
3.6 访问Nginx默认页面
四、Nginx的配置文件
五、Nginx的基本使用
5.1 静态文件服务
5.2 反向代理和负载均衡
5.3 SSL/TLS配置
5.4 访问控制和安全防护
六、总结


一、Nginx简介

Nginx是一款轻量级的Web服务器和反向代理服务器,由俄罗斯的程序设计师Igor Sysoev开辟,于2004年首次公开辟布。Nginx以其高性能、高并发、低资源消耗和可扩展性而闻名,被广泛应用于各种规模的网站和应用程序中。
Nginx的重要特点包罗:

  • 高性能:Nginx接纳了异步非壅闭的事件驱动架构,可以大概同时处理大量的并发连接,提供了出色的性能和伸缩性。
  • 低资源消耗:与传统的Web服务器相比,Nginx的内存占用和CPU使用率都非常低,可以大概在有限的硬件资源下提供精良的性能。
  • 反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发到后端的服务器,实现负载均衡、缓存加速等功能。
  • 静态文件服务:Nginx可以大概高效地处理静态文件请求,如HTML、CSS、JavaScript、图片等,减轻后端服务器的负载。
  • 模块化设计:Nginx接纳了模块化的设计,可以通过添加或删除模块来扩展其功能,如SSL/TLS加密、GZip压缩、访问控制等。
  • 配置简单:Nginx的配置文件布局清楚,语法简单,易于理解和维护。
二、Nginx的应用场景

Nginx依附其出色的性能和灵活的功能,在各种场景中得到了广泛应用,重要包罗:

  • 静态网站服务:Nginx可以作为高性能的静态Web服务器,快速相应静态文件请求,减轻后端服务器的压力。
  • 反向代理和负载均衡:Nginx可以将客户端的请求分发到多个后端服务器,实现负载均衡,进步系统的可用性和性能。
  • Web应用程序服务器:Nginx可以与各种Web应用程序框架(如PHP、Python、Ruby等)集成,作为应用程序服务器处理动态请求。
  • 缓存加速:Nginx可以缓存静态和动态内容,减少后端服务器的负载,加速网站访问速度。
  • SSL/TLS终止:Nginx可以作为SSL/TLS终止点,处理HTTPS请求,进步网站的安全性。
  • 访问控制和安全防护:Nginx提供了丰富的访问控制和安全防护功能,如IP限制、基于用户的认证、请求限速等。
三、Nginx的安装过程

下面以Ubuntu 20.04为例,介绍Nginx的安装过程:
3.1 更新软件包列表

起首,使用apt命令更新软件包列表:
  1. sudo apt update
复制代码
3.2 安装Nginx

执行以下命令安装Nginx:
  1. sudo apt install nginx
复制代码
系统将自动下载并安装Nginx及其依赖包。
3.3 验证Nginx安装

安装完成后,可以使用以下命令检查Nginx的版本:
  1. nginx -v
复制代码
如果表现Nginx的版本号,则表现安装成功。
3.4 管理Nginx服务

Nginx安装完成后,系统会自动启动Nginx服务。可以使用以下命令来管理Nginx服务:


  • 启动Nginx:
    1. sudo systemctl start nginx
    复制代码
  • 停止Nginx:
    1. sudo systemctl stop nginx
    复制代码
  • 重启Nginx:
    1. sudo systemctl restart nginx
    复制代码
  • 重新加载Nginx配置:
    1. sudo systemctl reload nginx
    复制代码
  • 检察Nginx状态:
    1. sudo systemctl status nginx
    复制代码
3.5 配置防火墙

如果系统启用了防火墙,需要开放Nginx的默认端口(80和443):
  1. sudo ufw allow 'Nginx Full'
复制代码
3.6 访问Nginx默认页面

安装并启动Nginx后,可以通过欣赏器访问服务器的IP地址或域名,应该能看到Nginx的默认接待页面。

四、Nginx的配置文件

Nginx的主配置文件通常位于/etc/nginx/nginx.conf,它界说了Nginx的全局设置和HTTP服务器的基本配置。
除了主配置文件外,Nginx还支持使用单独的配置文件来管理差别的网站或应用程序。这些配置文件通常位于/etc/nginx/sites-available目录下,可以通过软链接到/etc/nginx/sites-enabled目录来启用。
一个典型的Nginx配置文件布局如下:
  1. http {
  2.     server {
  3.         listen 80;
  4.         server_name example.com;
  5.         root /var/www/example.com;
  6.         index index.html;
  7.         location / {
  8.             try_files $uri $uri/ =404;
  9.         }
  10.     }
  11. }
复制代码
这个配置文件界说了一个监听80端口的HTTP服务器,服务器名为example.com,网站根目录为/var/www/example.com,默认首页为index.html。location块界说了请求的处理规则,这里使用try_files指令来尝试查找请求的文件,如果找不到则返回404错误。
五、Nginx的基本使用

Nginx提供了丰富的功能和指令,可以满意各种Web服务的需求。以下是一些常用的Nginx功能和配置示例:
5.1 静态文件服务

Nginx可以高效地处理静态文件请求,如HTML、CSS、JavaScript、图片等。可以使用以下配置来优化静态文件服务:
  1. http {
  2.     server {
  3.         listen 80;
  4.         server_name example.com;
  5.         root /var/www/example.com;
  6.         index index.html;
  7.         location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
  8.             expires 7d;
  9.             add_header Cache-Control "public";
  10.         }
  11.     }
  12. }
复制代码
这个配置文件中的location块匹配以.jpg、.jpeg、.png、.gif、.ico、.css、.js末端的请求,并设置了7天的过期时间和Cache-Control头,以进步静态文件的缓存服从。
5.2 反向代理和负载均衡

Nginx可以作为反向代理服务器,将客户端的请求转发到后端的服务器,并实现负载均衡。可以使用以下配置来设置反向代理和负载均衡:
  1. http {
  2.     upstream backend {
  3.         server 192.168.1.101:8080;
  4.         server 192.168.1.102:8080;
  5.     }
  6.     server {
  7.        listen 80;
  8.        server_name example.com;
  9.        location / {
  10.           proxy_pass http://backend;
  11.           proxy_set_header Host $host;
  12.           proxy_set_header X-Real-IP $remote_addr;
  13.        }
  14.    }
  15. }
复制代码
这个配置文件中的`upstream`块界说了一个名为`backend`的后端服务器组,包罗两个服务器`192.168.1.101:8080`和`192.168.1.102:8080`。`server`块中的`location`块使用`proxy_pass`指令将请求转发到`backend`服务器组,并设置了一些代理相关的头部字段。
5.3 SSL/TLS配置

Nginx可以作为SSL/TLS终止点,处理HTTPS请求,进步网站的安全性。可以使用以下配置来启用SSL/TLS: 
  1. ```nginx
  2. http {
  3.     server {
  4.         listen 443 ssl;
  5.         server_name example.com;
  6.         root /var/www/example.com;
  7.         index index.html;
  8.         ssl_certificate /path/to/certificate.crt;
  9.         ssl_certificate_key /path/to/certificate.key;
  10.         ssl_protocols TLSv1.2 TLSv1.3;
  11.         ssl_ciphers HIGH:!aNULL:!MD5;
  12.     }
  13. }
复制代码

这个配置文件中的server块监听了443端口,并启用了SSL/TLS。ssl_certificate和ssl_certificate_key指令指定了SSL证书和私钥的路径。ssl_protocols和ssl_ciphers指令设置了SSL/TLS的协议版本和加密算法。
5.4 访问控制和安全防护

Nginx提供了多种访问控制和安全防护功能,如IP限制、基于用户的认证、请求限速等。可以使用以下配置来实现访问控制和安全防护:
  1. http {
  2.     server {
  3.         listen 80;
  4.         server_name example.com;
  5.         root /var/www/example.com;
  6.         index index.html;
  7.         location /admin/ {
  8.             allow 192.168.1.0/24;
  9.             deny all;
  10.             auth_basic "Admin Area";
  11.             auth_basic_user_file /etc/nginx/.htpasswd;
  12.         }
  13.         location /downloads/ {
  14.             limit_rate 100k;
  15.         }
  16.     }
  17. }
复制代码
这个配置文件中的第一个location块限制了只有192.168.1.0/24网段的IP可以访问/admin/目录,并启用了基于用户的认证,用户信息存储在/etc/nginx/.htpasswd文件中。第二个location块限制了/downloads/目录的下载速度为100KB/s。
六、总结

Nginx是一款功能强盛、性能卓越的Web服务器和反向代理服务器,被广泛应用于各种网站和应用程序中。它提供了丰富的功能和灵活的配置选项,可以满意差别场景下的Web服务需求。
本文介绍了Nginx的基本概念、应用场景和安装过程,并通过配置文件示例展示了Nginx的一些常用功能,如静态文件服务、反向代理和负载均衡、SSL/TLS配置、访问控制和安全防护等。
掌握Nginx的使用和配置,可以资助我们构建高性能、高可用、安全的Web服务,提升网站和应用程序的用户体验。无论是个人博客、企业网站还是大型Web应用,Nginx都是一个值得信任和选择的Web服务器办理方案。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

麻花痒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表