浅入浅出之nginx

工作流程

  1. 用户通过域名发出访问Web服务器的请求,该域名被DNS服务器解析为反向代理服务器的IP地址
  2. 反向代理服务器接受用户的请求
  3. 反向代理服务器在本地缓存中查找请求的内容,找到后直接把内容发送给用户
  4. 如果本地缓存里没有用户所请求的信息内容,反向代理服务器会代替用户向源服务器请求同样的信息内容,并把信息内容发给用户,如果信息内容是缓存的还会把它保存到缓存中

正向代理

概念

正向代理(Forward Proxy)通常都被简称为代理,就是在用户无法正常访问外部资源,比方说受到GFW的影响无法访问twitter的时候,我们可以通过代理的方式,让用户绕过防火墙,从而连接到目标网络或者服务
Alt

反向代理

概念


反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器
Alt

nginx反向代理配置文件介绍

# Nginx 代理配置示例

## `/abc/dd/` 代理配置

```nginx
location /abc/dd/ {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://200.200.111.22:1234;
}

解释

  • location /abc/dd/ {:定义了一个 location 块,匹配以 /abc/dd/ 开头的请求路径。
  • proxy_set_header Host $http_host;:设置代理请求的 Host 头部,使用客户端请求中的 Host 头部值。
  • proxy_set_header X-Real-IP $remote_addr;:设置代理请求的 X-Real-IP 头部,传递客户端的真实 IP 地址。
  • proxy_set_header REMOTE-HOST $remote_addr;:设置代理请求的 REMOTE-HOST 头部,传递客户端的真实 IP 地址。
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;:设置代理请求的 X-Forwarded-For 头部,传递客户端的 IP 地址以及之前所有代理的 IP 地址(如果有的话)。
  • proxy_pass http://200.200.111.22:1234;:指定代理请求应该转发到的目标服务器地址。

作用

这段配置定义了一个 Nginx 代理,它将所有指向特定路径(/abc/dd/)的请求转发到目标服务器(http://200.200.111.22:1234),并在转发过程中设置了一些必要的 HTTP 头部,以传递客户端的真实 IP 地址和其他相关信息。

参考文章

nginx工作原理分析

nginx配置文件详解

当然,以下是一个以 Markdown 格式输出的 Nginx 常用指令和操作列表:

Nginx 常用指令和操作

启动 Nginx

nginx

测试配置文件

nginx -t

快速关闭 Nginx

nginx -s stop

优雅关闭 Nginx

nginx -s quit

重载配置文件

nginx -s reload

查看版本

nginx -v

查看编译时的参数

nginx -V

查看进程

ps aux | grep nginx

配置用户访问日志

access_log /path/to/log;

配置错误日志

error_log /path/to/log;

设置 web 根目录

root /path/to/webroot;

配置 server 块

server {
    listen 80;
    server_name example.com;
    location / {
        root /path/to/webroot;
        index index.html;
    }
}

配置 location 块

location / {
    try_files $uri $uri/ /index.html;
}

配置反向代理

location / {
    proxy_pass http://localhost:3000;
}

配置负载均衡

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

相关推荐

  1. 容器化部署

    2024-04-12 23:06:03       15 阅读
  2. 谈MySQL索引

    2024-04-12 23:06:03       210 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-12 23:06:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-12 23:06:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-12 23:06:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-12 23:06:03       18 阅读

热门阅读

  1. 【NC23803】DongDong认亲戚

    2024-04-12 23:06:03       54 阅读
  2. 【华为OD机试C++】蛇形矩阵

    2024-04-12 23:06:03       17 阅读
  3. 【算法刷题day24】回溯算法+简单剪枝

    2024-04-12 23:06:03       75 阅读
  4. 虚拟线程和普通线程

    2024-04-12 23:06:03       15 阅读
  5. 递归神经网络(Recursive Neural Networks)

    2024-04-12 23:06:03       16 阅读
  6. 题目 2011: 电导流的矩形

    2024-04-12 23:06:03       17 阅读
  7. DataSource

    2024-04-12 23:06:03       18 阅读