史上最简单Nginx入门

一、Nginx简介

1、nginx是什么?

Nginx是一款轻量级的高性能HTTP和反向代理web服务器,也可以作为电子邮件(IMAP/POP3)代理服务器和通用的TCP/UDP代理服务器。它最初由Igor Sysoev设计和开发,于2004年首次公开发布。Nginx是一个开源软件,以BSD许可证发布,因此它是免费的,并且可以在Windows、Linux、Mac OS X、Unix等多种操作系统上运行。

Nginx的主要优点是高性能、高并发、低内存消耗和稳定性,被广泛用于高流量的网站、视频流媒体、CDN、反向代理、负载均衡等场景。它的设计理念是模块化、可扩展、灵活,可以通过添加模块来扩展其功能,也可以通过自定义模块来实现特定的需求。Nginx还支持动态模块加载,因此可以在运行时添加和删除模块,而无需重新编译和安装Nginx。

总之,Nginx是一款功能强大的高性能web服务器和反向代理服务器,被众多企业和网站所采用。

2、nginx具有哪些功能

  • 静态资源服务:Nginx可以直接提供静态文件服务,例如HTML、CSS、JavaScript、图片等,支持高并发和快速响应。
  • 反向代理:Nginx作为反向代理服务器,可以将客户端请求转发给后端服务器,例如Tomcat、Node.js、PHP等,实现负载均衡、高可用性和请求过滤等功能。
  • 动态内容处理:Nginx可以将动态请求转发给后端服务器处理,并将处理结果返回给客户端,例如CGI、FastCGI、uWSGI、SCGI、PHP-FPM等。
  • URL重写:Nginx可以使用正则表达式对URL进行重写,实现URL路由、转发、保护等功能。
  • SSL/TLS加密:Nginx支持SSL/TLS协议,可以对客户端和服务器之间的通信进行加密,提高安全性和保护隐私。
  • 缓存:Nginx可以对静态和动态资源进行缓存,减少后端服务器的负载和提高响应速度。
  • 日志记录:Nginx可以记录访问日志和错误日志,方便性能分析和故障排查。
  • 高并发和高性能:Nginx采用异步非阻塞I/O模型,支持高并发和高性能,适合用于处理大量并发请求。
  • 负载均衡:Nginx可以实现多种负载均衡策略,例如轮询、权重、IP hash等,提高系统的可扩展性和可靠性。

二、Nginx特性

1、反向代理

正向代理和反向代理都是代理服务器的一种应用,它们的区别在于代理的方向和使用场景不同。

正向代理(Forward Proxy):

  • 正向代理是客户端向代理服务器发送请求,代理服务器再将请求转发给目标服务器,目标服务器无法知道请求来自于哪个客户端,只知道请求来自于代理服务器。正向代理一般用于客户端无法直接访问目标服务器的情况,例如客户端位于内网或受到访问限制,需要通过代理服务器来访问互联网资源。正向代理可以实现访问控制、跨域、缓存和安全等功能。

反向代理(Reverse Proxy):

  • 反向代理是客户端向代理服务器发送请求,代理服务器再将请求转发给后端服务器,后端服务器无法知道请求来自于哪个客户端,只知道请求来自于代理服务器。反向代理一般用于后端服务器需要隐藏或者负载均衡的情况,例如一个网站后端有多台服务器,反向代理可以根据负载均衡算法将请求转发给不同的服务器,以达到均衡负载的目的。反向代理可以实现负载均衡、高可用性、安全过滤、SSL加密和统一入口等功能。

总之,正向代理和反向代理都是代理服务器的一种应用,它们的区别在于代理的方向和使用场景不同。正向代理用于客户端无法直接访问目标服务器的情况,而反向代理用于后端服务器需要隐藏或者负载均衡的情况。

2、负载均衡

负载均衡(Load Balancing)是一种将请求分发到多个服务器上的技术,以达到增加系统容量、提高可用性和性能的目的。负载均衡器可以将请求分发到多台服务器上,使每台服务器的负载得到均衡,从而提高整个系统的性能和可用性。

在Nginx中,负载均衡可以通过upstream模块实现。upstream模块定义了一组后端服务器,可以将请求分发到这些服务器上。通过配置upstream中的服务器列表,可以实现负载均衡的算法,包括轮询、加权轮询、IP哈希、URL哈希等多种算法。例如,以下是一个简单的upstream配置示例:

upstream backend {
    
    
    server backend1.example.com weight=5;
    server backend2.example.com;
    server backend3.example.com;
}

这个配置定义了一个名为backend的upstream,其中包含三个后端服务器backend1.example.com、backend2.example.com和backend3.example.com。其中,backend1.example.com的权重为5,表示它处理的请求会比其他服务器多5倍。默认情况下,upstream采用轮询算法进行负载均衡,即将请求依次分配给每台服务器。可以通过配置不同的算法来实现不同的负载均衡策略。

在Nginx中,负载均衡的配置通常与反向代理一起使用,即将Nginx作为反向代理服务器,将请求分发到后端服务器上。通过配置反向代理服务器和upstream中的服务器列表,可以实现负载均衡的功能,并将请求转发到后端服务器上进行处理。

3、动静分离

动静分离是一种将动态请求和静态请求分开处理的技术,可以提高服务器的性能和稳定性。动态请求通常是指需要通过程序生成的,包括动态网页、动态图片、动态数据等;静态请求通常是指静态资源,如HTML、CSS、JavaScript、图片、视频等,这些资源在请求时并不需要进行处理,可以直接返回给客户端。

在Nginx中,可以通过配置实现动静分离。具体实现方式如下:

  1. 将动态请求交给FastCGI或uWSGI等程序处理,例如PHP、Python等。
  2. 将静态请求直接从服务器本地文件系统中返回,无需通过程序处理。
  3. 将动态请求和静态请求分别放到不同的服务器或者不同的端口上,通过Nginx的反向代理功能进行请求分发。
    例如,以下是一个简单的Nginx配置示例,实现动静分离的功能:
http {
    
    
    server {
    
    
        listen 80;
        server_name example.com;
        # 静态文件的根目录
        root /var/www/static;
        # 处理动态请求
        location /api/ {
    
    
            fastcgi_pass 127.0.0.1:9000;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /var/www/example.com/index.php;
        }
        # 处理静态请求
        location / {
    
    
            expires 1d;
            add_header Cache-Control "public";
        }
    }
}

这个配置定义了一个Nginx服务器,其中静态文件的根目录为/var/www/static。当请求/api/路径时,会将请求转发给FastCGI服务器处理;当请求其他路径时,Nginx会直接返回静态文件,例如HTML、CSS、JS等。通过这种方式,可以将动态请求和静态请求分开处理,提高服务器性能和稳定性。

三、Nginx安装-windows版本

nginx中文网

3、nginx配置

解压到英文目录下,打开/nginx-1.21.6/conf/nginx.conf配置如下,即可通过访问80端口代理到8080和8081端口
在这里插入图片描述

四、Nginx安装-linux版本

1、地址

nginx中文网

2、常用命令

使用 nginx 操作命令前提条件:必须进入 nginx 的目录.usr/local/nginx/sbin

  • ./nginx -v : 查看nginx版本
  • ./nginx -s stop : 停止nginx服务
  • ./nginx : 启动nginx服务
  • ./nginx -s reload : 重新加载nginx配置文件

五、Nginx配置

猜你喜欢

转载自blog.csdn.net/weixin_44183847/article/details/129353284
今日推荐