初探Nginx(二)

850 阅读3分钟

前言

上一篇文章,简要的对Nginx配置文件进行了介绍,但是大部分人说起Nginx还是想起反向代理负载均衡等关键词。这篇文章旨在介绍Nginx的反向代理功能。

正向代理与反向代理

无论学习什么,首先要知道相关概念,有反向代理就会有正向代理。那么,正向代理与反向代理分别是什么呢?

维基百科

  • 正向代理(前向代理):

代理(英语:Proxy)也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。

  • 反向代理:

反向代理在电脑网络中是代理服务器的一种。服务器根据客户端的请求,从其关联的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器集群的存在。

  • 图解:

未命名文件.png

区别

  • 正向代理

1、为客户端的代理,将从互联网上获取的资源返回给一个或多个客户端,服务端只知道代理的IP地址而不知道客户端的IP地址。 2、客户端借由正向代理可以间接访问很多不同互联网服务器的资源。 3、例如科学上网。。。

  • 反向代理

1、为服务器端的代理,客户端通过反向代理服务器间接访问不同服务器端资源,而不需要知道这些后端服务器的存在。 2、所有服务器资源来自于反向代理服务器。 3、例如Nginx。。。

配置实战

知道了正向代理与反向代理的区别,我们就要进入正题,如何使用Nginx配置正向代理与反向代理。

  • Nginx配置正向代理
server {
        # listen       8080;
        # server_name  localhost;

        # 配置DNS地址
        resolver 114.114.114.114; 
        # 监听8000端口 所有8000端口的请求 使用DNS解析域名 并访问
        listen 8000;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            # root   html;
            # index  index.html index.htm;
            # 代理服务器协议与格式
            proxy_pass http://$http_host$request_uri;
        }

测试用例

nginx -s reload
curl -l --proxy 127.0.0.1:8000 'www.baidu.com'
curl -l --proxy 127.0.0.1:8000 http://www.taobao.com/
  • Nginx配置反向代理

例子:使用www.zacpark.com访问127.0.0.1:8080

  1. 首先,配置host
127.0.0.1 www.zacpark.com
  1. 修改nginx配置
server {
        listen       80;
        server_name  www.zacpark.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            # 代理服务器协议与格式
            proxy_pass http://127.0.0.1:8080;
            root   html;
            index  index.html index.htm;
            
        }
  1. reload nginx配置
  2. 输入www.zacpark.com访问

结语

理解正向代理与反向代理的区别,对Nginx反向代理配置做了简单介绍,有助于后续学习Nginx反向代理的详细配置。

参考文献

www.jianshu.com/p/ae76c223c… 精通Nginx(第二版) zh.wikipedia.org/wiki/代理服务器 zh.wikipedia.org/zh-sg/反向代理 www.jianshu.com/p/8efd3c0ef… www.cnblogs.com/ysocean/p/9…