Web开发:web服务器-Nginx的基础介绍(含AI文稿)

目录

一、Nginx的功能:

二、正向代理和反向代理的区别

三、Nginx负载均衡的主要功能

四、nginx安装目录下的各个文件(夹)的作用:

五、常用命令


一、Nginx的功能:

1.反向代理:例如我有三台服务器,Nginx可以作为代理服务器,转发用户的请求给这三台服务器,起到集中管理和优化流量分发的作用。


2.负债均衡:存在高级负载均衡策略,比如说哪个服务器内存大,动态优先让此台服务器处理用户请求,在服务器故障时自动将流量转移到健康的服务器。


3.内存小,支持高并发访问


4.可以作为静态资源服务器、缓存服务器。

二、正向代理和反向代理的区别

1.正向代理:

例如VPN,你的网络环境中存在一个正向代理服务器(墙),你无法直接访问外网。你可以连VPN,将你的请求先发送给VPN服务器(正向代理),由VPN服务器代表你向目标服务器发出请求,获取到服务器的响应后再返回给你。在这个过程中,目标服务器只能看到VPN服务器的IP地址,无法直接识别你的真实IP地址和位置信息。

 2.反向代理

反向代理:例如Nginx中, 假设有一个网站部署了Nginx作为反向代理服务器。当客户端向这个网站发送请求时,请求会先到达Nginx服务器,Nginx根据预先配置的规则和负载均衡算法,将请求转发到后端的多个服务器(如应用服务器、数据库服务器等)。后端服务器处理完请求后,将结果返回给Nginx,再由Nginx将结果返回给客户端。对客户端来说,Nginx是唯一与之通信的服务器,客户端无法直接访问到后端的真实服务器。

3.总结:

流向不同:

    正向代理的流程是客户端 -> 正向代理 -> 目标服务器。

    反向代理的流程是客户端 -> 反向代理 -> 后端服务器。

目的不同:

    正向代理的目的是代理客户端去访问其他资源,通常用于访问控制、身份隐藏等。

    反向代理的目的是代理服务器来处理客户端的请求,通常用于负载均衡、缓存、安全保护等。

配置位置:

    正向代理配置在客户端或客户端访问路径中。

    反向代理配置在目标服务器和客户端之间,通常是在网络边界或应用服务器前。

三、Nginx负载均衡的主要功能

1. 轮询(Round-robin)
一种算法,它将每个请求按顺序分配到后端的不同服务器上,适用于每个服务器性能相近的场景。(假如三台服务器,那就123,123,123....)

nginx
upstream backend {
    server server1.example.com;
    server server2.example.com;
    server server3.example.com;
}

2. 加权轮询(Weighted Round-robin)
加权轮询允许为每个后端服务器分配一个权重值,权重值越高的服务器每轮接收到的请求越多。

nginx
upstream backend {
    server server1.example.com weight=3;
    server server2.example.com weight=2;
    server server3.example.com weight=1;
}

3. IP哈希(IP Hash)
基于客户端IP地址,将同一个客户端的所有请求发送到同一个后端服务器。这样可以确保同一客户端的会话保持在同一服务器上。(Session:维持登录状态)

nginx
upstream backend {
    ip_hash;
    server server1.example.com;
    server server2.example.com;
    server server3.example.com;
}

4. 动静分离(Static and Dynamic Content Separation)
将静态文件(如图片、CSS、JavaScript等)的请求和动态请求(如PHP、Python等脚本生成的页面)分发到不同的后端处理机制。通常,静态文件可以直接由Nginx处理并响应,而动态请求则转发给后端应用服务器处理。

nginx
server {
    listen 80;
    server_name example.com;

    location /static/ {
        root /var/www/;
    }

    location / {
        proxy_pass http://backend;
    }

    upstream backend {
        server backend-server1;
        server backend-server2;
    }
}

四、nginx安装目录下的各个文件(夹)的作用:


1.conf
2.contrib
3.docs
4.html
5.logs
6.temp
7.nginx.exe


1.conf:

这是 Nginx 的配置文件夹,包含了 Nginx 的各种配置文件。主要的配置文件是 nginx.conf,用于配置 Nginx 的全局设置、HTTP、服务器、位置等各种参数。

举例并且注释nginx.conf的内容:

# 全局配置
user nginx;  # 设置 Nginx 进程运行的用户为 nginx 用户
worker_processes auto;  # 自动设置工作进程数量,通常设置为 CPU 核心数
error_log /var/log/nginx/error.log;  # 错误日志文件的路径
pid /var/run/nginx.pid;  # Nginx 主进程的 PID 文件路径

# events 配置
events {
    worker_connections 1024;  # 每个工作进程允许的最大连接数
}

# HTTP 配置
http {
    include mime.types;  # 引入 MIME 类型配置文件
    default_type application/octet-stream;  # 默认的 MIME 类型
    sendfile on;  # 开启 sendfile 功能,提高文件传输效率
    keepalive_timeout 65;  # 客户端连接的超时时间
    gzip on;  # 开启 gzip 压缩

    # 定义后端服务器池
    upstream backend_servers {
        server backend1.example.com weight=5;  # 第一个后端服务器,权重为 5
        server backend2.example.com:8080 max_fails=3 fail_timeout=30s;  # 第二个后端服务器,指定端口和失败参数
        server unix:/tmp/backend3.sock;  # 第三个后端服务器,使用 Unix 域套接字
    }

    # 服务器配置
    server {
        listen 80;  # 监听 80 端口
        server_name example.com;  # 服务器的域名为 example.com

        location / {
            root /usr/share/nginx/html;  # 根目录位置
            index index.html index.htm;  # 默认首页文件
        }

        location /api/ {
            proxy_pass http://backend_servers;  # 请求转发到后端服务器池
            proxy_set_header Host $host;  # 设置请求头 Host
            proxy_set_header X-Real-IP $remote_addr;  # 设置请求头 X-Real-IP
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 设置请求头 X-Forwarded-For
        }

        error_page 500 502 503 504 /50x.html;  # 设置错误页的处理
        location = /50x.html {
            root /usr/share/nginx/html;  # 错误页文件的位置
        }
    }
}

2.contrib:

contrib 文件夹通常包含一些额外的模块或者补丁,这些模块可能不是 Nginx 官方正式支持的,但提供了一些额外的功能或者实验性质的特性。

3.docs:文档手册
4.html:Nginx 默认的网站根目录

当通过 HTTP 访问服务器时,如果没有配置其他的虚拟主机或者站点,Nginx 将会服务于这个目录下的文件。

5.logs:日志文件
6.temp:

temp 文件夹通常用于存放临时文件,例如上传文件时的临时存储位置。这些文件一般在使用完毕后会被删除或者清理。

7.nginx.exe:

nginx.exe 是 Nginx 的可执行文件(在 Windows 上)。它是启动和管理 Nginx 服务的主要程序,通过执行这个文件可以启动、停止或重新加载 Nginx 的配置。

五、常用命令

1.启动和停止(stop 参数会立即停止 Nginx 进程,而 quit 参数会等待当前请求处理完成后再停止。)

nginx
nginx -s stop

2.安全退出

nginx -s quit

3.重新加载配置文件(使新的配置生效)

nginx -s reload

4.查看Nginx进程

ps aux | grep nginx

(以上部分内容由AI生成,部分内容参考其他博主,如有错误恳请指正)
 

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值