Nginx代理服务 - 正向代理和反向代理

简介: 一、代理简介1. 代理2. Nginx代理服务3. 正向代理和反向代理


一、代理简介



1. 代理

image.png


2. Nginx代理服务

image.png


3. 正向代理和反向代理

区别在于代理的对象不一样。


正向代理代理的对象是客户端

image.png


反向代理代理的对象是服务端

image.png


4. Nginx代理模块 ngx_http_proxy_module


语法

Syntax:    proxy_pass URL;
Default:    —
Context:    location, if in location, limit_except

URL支持:

http:http://localhost:8000/uri/
https:https://192.168.1.111:8000/uri/
socket:http://unix:/tmp/backend.socket:/uri/

二、反向代理实例



1. 创建真实要访问的服务配置:vim conf.d/real_server.conf


server {

# 监听8080端口
    listen 8080;

   location / {

# 配置访问根目录为 /vagrant/proxy
        root /vagrant/proxy;
    }
}

2. 创建反向代理配置 vim conf.d/fx_proxy.conf

server {

# 监听80端口
    listen 80;
    server_name localhost;

 location

~ /fx_proxy.html {
        # 设置反向代理,将访问 /fx_proxy.html 的请求转发到 http://127.0.0.1:8080
        proxy_pass http://127.0.0.1:8080;
    }
}

3. nginx -s reload 重新载入nginx配置文件


4. 创建 /vagrant/proxy/fx_proxy.html 文件

• vim /vagrant/proxy/fx_proxy.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>反向代理</title>
    </head>
    <body>
        <h1>反向代理</h1>
    </body>
</html>

5. 使用 ss -tln 查看 80 端口和 8080 端口全部开启

[root~]# ss -tln
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN      0      128               *:8080                          *:*
LISTEN      0      128               *:80                            *:*
LISTEN      0      128               *:22                            *:*
LISTEN      0      10        127.0.0.1:25                            *:*
LISTEN      0      128              :::22                           :::*

6. 使用 curl进行访问测试

[root~]# curl http://127.0.0.1/fx_proxy.html
<!DOCTYPE html>
<html lang="en">
        <head>
                <meta charset="utf-8">
                <title>反向代理</title>
        </head>
        <body>
                <h1>反向代理</h1>
        </body>
</html>
[root~]# curl http://127.0.0.1:8080/fx_proxy.html
<!DOCTYPE html>
<html lang="en">
        <head>
                <meta charset="utf-8">
                <title>反向代理</title>
        </head>
        <body>
                <h1>反向代理</h1>
        </body>
</html>


三、正向代理实例



1. 在服务器创建真实要访问的服务配置:vim conf.d/real_server.conf

server {

# 监听80端口
    listen 80;
    # 域名为 zx_proxy.ws65535.top;
    server_name  zx_proxy.ws65535.top;

   location / {

# $http_x_forwarded_for 可以记录客户端及所有中间代理的IP
        # 判断客户端IP地址是否是 39.106.178.166,不是则返回403
        if ($http_x_forwarded_for !~* "^39\.106\.178\.166") {
            return 403;
        }
        root   /usr/share/nginx/html;
        index  index.html;
    }
}

2. nginx -s reload 重新载入nginx配置文件


3. 在本地使用浏览器访问 http://zx_proxy.ws65535.top/,返回 403 Forbidden,说明访问被拒绝

image.png


4. 在服务器创建代理服务配置:vim conf.d/zx_proxy.conf

server {

 

# 代理服务监听的端口(注意,一定要看服务器供应商控制台的安全组是否开启了该端口)
    listen 3389;
    # 配置DNS,223.5.5.5是阿里云的DNS
    resolver 223.5.5.5;
    # 正向代理配置

   location

/ {
        proxy_pass http://$http_host$request_uri;
    }
}


5. nginx -s reload 重新载入nginx配置文件


6. 浏览器配置代理(以下是Windows10的代理配置方式,其他操作系统自行配置)

  • 控制面板 -> 网络和Internet -> 代理 -> 手动设置代理

image.png


7. 设置代理后在本地使用浏览器访问 http://zx_proxy.ws65535.top/,可以正常访问

image.png

相关文章
|
24天前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
16天前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
31 2
|
20天前
|
缓存 负载均衡 应用服务中间件
Nginx 代理管理器强势登场!轻松设置反向代理,为你的网络安全与高效护航,快来探索!
【8月更文挑战第23天】Nginx 代理管理器(NPM)是一款强大的工具,用于简化反向代理的设置流程。反向代理能隐藏后端服务器的真实IP,提升安全性,实现负载均衡与缓存等功能。用户需先安装Nginx 代理管理器,然后通过其Web界面添加代理主机,指定代理名称、协议类型、服务器地址及端口等信息。对于HTTPS协议,还需上传SSL证书/密钥。完成设置后,可通过浏览器测试反向代理是否正常工作。Nginx 代理管理器还支持高级特性,如负载均衡、缓存及访问控制等。
37 1
|
21天前
|
缓存 负载均衡 应用服务中间件
【揭秘】nginx代理配置全攻略:从零到精通,一文带你玩转高效网络代理的秘密武器!
【8月更文挑战第22天】nginx是一款高性能的HTTP与反向代理服务器,支持代理服务、负载均衡及缓存等功能,有助于提升网站响应速度和安全性。首先需确保已安装nginx,可通过包管理器进行安装。安装后启动并确认nginx运行状态。接着编辑配置文件(通常位于`/etc/nginx/nginx.conf`),设置代理转发规则,例如指定目标服务器地址和请求头信息。配置完成后测试有效性并重新加载nginx以应用更改。可以通过部署简易HTTP服务器验证代理功能是否正常工作。此外,还可以通过扩展配置文件实现更复杂的代理需求,如基于路径的代理和SSL加密等。
81 2
|
22天前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
39 3
|
22天前
|
负载均衡 算法 应用服务中间件
在Linux中,nginx反向代理和负载均衡实现原理是什么?
在Linux中,nginx反向代理和负载均衡实现原理是什么?
|
28天前
|
jenkins 应用服务中间件 持续交付
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
48 8
|
21天前
|
缓存 负载均衡 应用服务中间件
如何配置 NGINX 反向代理
【8月更文挑战第21天】
94 0
如何配置 NGINX 反向代理
|
27天前
|
缓存 Ubuntu 前端开发
在Ubuntu上手动与自动启动Nginx的踩坑经历、以及重启服务
本文分享了作者在Ubuntu系统上手动和自动启动Nginx服务的踩坑经历,包括创建启动脚本、解决依赖问题、配置服务自动启动以及通过命令行管理Nginx服务的方法。
131 0
在Ubuntu上手动与自动启动Nginx的踩坑经历、以及重启服务
|
13天前
|
安全 JavaScript 前端开发
Nginx服务扫描漏洞修复
Nginx服务扫描漏洞修复