博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx实践篇(4)- Nginx代理服务 - 正向代理和反向代理
阅读量:5872 次
发布时间:2019-06-19

本文共 2780 字,大约阅读时间需要 9 分钟。

一、代理简介

1. 代理

代理

2. Nginx代理服务

Nginx代理服务

3. 正向代理和反向代理

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

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

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

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

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

4. Nginx代理模块

语法

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

URL支持:

  1. http:http://localhost:8000/uri/
  2. https:https://192.168.1.111:8000/uri/
  3. 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
            
反向代理

反向代理

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

[root~]# ss -tlnState       Recv-Q Send-Q Local Address:Port               Peer Address:PortLISTEN      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进行访问测试

  • http://127.0.0.1/fx_proxy.html可以正常访问
[root~]# curl http://127.0.0.1/fx_proxy.html                        
反向代理

反向代理

  • http://127.0.0.1:8080/fx_proxy.html可以正常访问
[root~]# curl http://127.0.0.1:8080/fx_proxy.html                        
反向代理

反向代理

三、正向代理实例

正向代理须在有公网IP的正式的服务器上测试。
笔者远程服务器的IP地址为:39.106.178.166,测试用的域名为
zx_proxy.ws65535.top

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,说明访问被拒绝

enter description here

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 -> 代理 -> 手动设置代理

enter description here

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

enter description here

转载地址:http://vahnx.baihongyu.com/

你可能感兴趣的文章
重写 Ext.form.field 扩展功能
查看>>
Linux下的搜索查找命令的详解(locate)
查看>>
福利丨所有AI安全的讲座里,这可能是最实用的一场
查看>>
开发完第一版前端性能监控系统后的总结(无代码)
查看>>
Python多版本情况下四种快速进入交互式命令行的操作技巧
查看>>
MySQL查询优化
查看>>
【Redis源码分析】如何在Redis中查找大key
查看>>
关于链接文件的探讨
查看>>
android app启动过程(转)
查看>>
Linux—源码包安装
查看>>
JDK8中ArrayList的工作原理剖析
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Applet
查看>>
高并发环境下,Redisson实现redis分布式锁
查看>>
乌克兰基辅一世遗修道院起火 现场火光照亮夜空
查看>>
[iOS 10 day by day] Day 2:线程竞态检测工具 Thread Sanitizer
查看>>
Centos/Ubuntu下安装nodejs
查看>>
关于浏览器的cookie
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>