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....)

bash 复制代码
nginx
upstream backend {
    server server1.example.com;
    server server2.example.com;
    server server3.example.com;
}

2. 加权轮询(Weighted Round-robin)

加权轮询允许为每个后端服务器分配一个权重值,权重值越高的服务器每轮接收到的请求越多。

bash 复制代码
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:维持登录状态)

bash 复制代码
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处理并响应,而动态请求则转发给后端应用服务器处理。

bash 复制代码
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的内容:

python 复制代码
# 全局配置
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 参数会等待当前请求处理完成后再停止。)

bash 复制代码
nginx
nginx -s stop

2.安全退出

bash 复制代码
nginx -s quit

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

bash 复制代码
nginx -s reload

4.查看Nginx进程

bash 复制代码
ps aux | grep nginx

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

相关推荐
AI青年志1 分钟前
【服务器】linux服务器管理员查看用户使用内存情况
linux·运维·服务器
dessler39 分钟前
Docker-run命令详细讲解
linux·运维·后端·docker
ekskef_sef1 小时前
32岁前端干了8年,是继续做前端开发,还是转其它工作
前端
群联云防护小杜1 小时前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
sunshine6411 小时前
【CSS】实现tag选中对钩样式
前端·css·css3
PyAIGCMaster1 小时前
ubuntu装P104驱动
linux·运维·ubuntu
奈何不吃鱼1 小时前
【Linux】ubuntu依赖安装的各种问题汇总
linux·运维·服务器
zzzhpzhpzzz1 小时前
Ubuntu如何查看硬件型号
linux·运维·ubuntu
蜜獾云2 小时前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
真滴book理喻2 小时前
Vue(四)
前端·javascript·vue.js