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

相关文章
|
2月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
67 5
|
2月前
|
监控 应用服务中间件 测试技术
确保正则表达式在 Nginx 代理中的准确性和稳定性
【10月更文挑战第19天】总之,正则表达式在 Nginx 代理中具有重要作用,但要确保其准确性和稳定性需要付出一定的努力和关注。通过以上方法的综合运用,我们可以提高正则表达式配置的可靠性,为用户提供更好的服务体验。
|
22天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
1月前
|
前端开发 应用服务中间件 定位技术
Nginx 如何代理转发传递真实 ip 地址?
【10月更文挑战第32天】
177 5
Nginx 如何代理转发传递真实 ip 地址?
|
1月前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
188 1
nginx配置反向代理404问题
|
18天前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
33 4
|
18天前
|
缓存 负载均衡 安全
Nginx的反向代理具体是如何实现的?
Nginx的反向代理具体是如何实现的?
|
25天前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
2月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
173 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
2月前
|
应用服务中间件 API nginx
使用正则表达式实现 Nginx 代理
【10月更文挑战第19天】在不断发展的互联网技术中,掌握正则表达式在 Nginx 代理中的应用是非常重要的。不断探索和实践,将有助于我们在实际工作中更好地运用这一技术,提升项目的质量和效率。