Nginx之7移花接木 - (反向代理)

简介: Nginx从入门到深入之反向代理

什么是反向代理?

反向代理是指以代理服务器来接受用户的连接请求,然后将请求转发给另外的服务器,并将从该服务器上得到的结果转发返回给用户客户端,服务器之间的行为就称之为反向代理。Nginx的ngx_http_proxy_module模块就实现了这种方向代理的功能。
5

使用反向代理的作用?

  1. 反向服务器入口实现统一访问入口为内网服务器实现隐藏保证安全
  2. 反向服务器入口实现统一缓存功能减轻服务器负载
  3. 反向服务器入口实现统一日志记录
  4. 反向服务器入口实现统一访问控制
  5. 实现负载均衡
    ...

如何配置反向代理

vim /usr/local/nginx/conf/nginx.conf
server {
    listen 80;
    server_name proxy.yekangming.com;
    location / {
        proxy_pass http://nginx.yekangming.com;
    }
}

我们配置proxy.yekangming.com这个站点为用户提供访问服务,资源是来自于nginx.yekangming.com,但这个对于客户端是透明的,只知道proxy.yekangming.com提供的服务,而不知道nginx.yekangming.com的存在,这对nginx.yekangming.com提供了安全。

小技巧

proxy_set_header Host $http_host;
proxy_set_header X-Forward-For $remote_addr;

一般在配置Nginx作为代理时,站点会添加以上的2条配置记录来修改http请求的头部信息。
那么为什么要这样做呢?

一般代理服务器后端有多台应用服务器,如果在应用服务器利用了host字段进行路由、判断、站点选择等功能时,那么如果没有设置Host就会导致请求失败。而X_Forward_For字段表示请求的客户端的身份,如果不进行配置则后端应用服务器认为请求全部来自代理服务器,如果有访问限制的策略的话,可能会引起误识别,或者在日志收集的情况下,会发现日志信息无法使用。

目录
相关文章
|
4月前
|
应用服务中间件 nginx
百度搜索:蓝易云【如何用NGINX实现UDP四层反向代理?】
请注意,这个回答是基于NGINX目前的特性和功能,如果有新的版本或更新的特性,建议查阅NGINX官方文档或其他权威资源,以确保你得到最准确的配置信息。
33 0
|
4月前
|
JSON 应用服务中间件 API
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
109 1
|
4月前
|
负载均衡 应用服务中间件 nginx
nginx-tomcat反向代理以及负载均衡测试
nginx-tomcat反向代理以及负载均衡测试
|
1月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
44 4
|
29天前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
27 0
|
6月前
|
应用服务中间件 nginx Docker
nginx反向代理踩坑(容器方式)
nginx反向代理踩坑(容器方式)
193 0
|
2月前
|
负载均衡 应用服务中间件 Linux
|
3月前
|
tengine Rust 负载均衡
反向代理学习笔记(一) Nginx与反向代理绪论
反向代理学习笔记(一) Nginx与反向代理绪论
|
3月前
|
负载均衡 Java 应用服务中间件
|
3月前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
70 0