Nginx反向代理配置详解,图文全面总结,建议收藏

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
日志服务 SLS,月写入数据量 50GB 1个月
简介: Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。

关注△mikechen的互联网架构△,10年+BAT架构经验倾囊相授

大家好,我是 mikechen | 陈睿

Nginx是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。

本篇,全面详解 Nginx 反向代理及配置。@mikechen

Nginx

Nginx是一款高性能的HTTP、和反向代理服务器,广泛应用于Web服务的负载均衡、缓存、和反向代理。

image.png

Nginx反向代理

反向代理(Reverse Proxy),是位于目标服务器、和客户端之间的代理服务器。

客户端的请求,首先到达反向代理服务器,然后由反向代理服务器,将请求转发给相应的后端服务器,并将后端服务器的响应返回给客户端。

如下图所示:

image.png

工作流程,大致如下:

1、客户端:浏览器向网站发起请求,比如:mikechen.cc发起请求;

2、DNS解析:mikechen.cc被解析为反向代理服务器的IP地址,(如:203.0.113.10);

3、发送请求:浏览器发送HTTP,请求到反向代理服务器;

4、反向代理服务器处理请求:Nginx接收请求,并根据配置文件决定将请求转发给后端服务器,比如:server1、server2、server3......等。

5、反向代理服务器接收响应:Nginx接收到后端服务器的响应。

Nginx反向代理配置

在配置Nginx反向代理之前,我们要熟知它的配置文件,Nginx 的配置文件通常位于 :/etc/nginx/nginx.conf 目录。

配置文件结构,如下图所示:

image.png

整体参数,如下:

1.main

全局设置,适用于整个 Nginx 服务器;

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
  • error_log:定义错误日志文件的位置和日志级别。
  • pid:指定存储 Nginx 主进程 ID 的文件位置。

2.http:HTTP 服务器设置。

  • 包含:MIME 类型、默认类型、日志格式、访问日志、文件发送、和保持活动时间的配置。
  • 包含:上游服务器块,定义了两个后端服务器以供负载均衡。

3.server

虚拟主机设置,配置如下:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}
  • listen:定义服务器监听的端口;
  • server_name:指定服务器的域名;
  • location:定义 URL 路径的处理方式。

以下是一个完整的 Nginx 反向代理配置:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    sendfile on;
    keepalive_timeout 65;
    include /etc/nginx/conf.d/*.conf;

    upstream backend_server {
        server 192.168.1.10:8080;
        server 192.168.1.11:8080;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/share/nginx/html;
        }
    }
}

通过以上配置,Nginx可以有效地作为反向代理服务器,提高系统的性能和可靠性。

以上,是 Nginx 反向代理配置的详细解析,欢迎评论区留言交流或拓展。

我是 mikechen | 陈睿 ,关注【mikechen的互联网架构】,10年+BAT架构技术倾囊相授。

新的架构专题内容,第一时间更新至:阿里架构师进阶全部合集

本文已同步我的技术博客 www.mikechen.cc,更新至我原创的《30W+字阿里架构技术合集》中。

相关文章
|
29天前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
73 7
|
1天前
|
存储 应用服务中间件 nginx
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
24 5
|
25天前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
17天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
39 3
|
1月前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
230 1
nginx配置反向代理404问题
|
25天前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
47 4
|
25天前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
50 3
|
25天前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
91 3
|
25天前
|
缓存 负载均衡 安全
Nginx的反向代理具体是如何实现的?
Nginx的反向代理具体是如何实现的?
|
27天前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
171 1