Nginx代理服务

作者: caohaoyu | 来源:发表于2018-10-31 16:37 被阅读4次

一、正向代理与反向代理的概念

正向代理:局域网内的机器借助代理服务访问局域网外的网站。代理的对象是客户端,目标是去访问外网的资源。(eg:通过代理翻墙去看看外面的世界)

正向代理示意图.png

反向代理:局域网向Internet提供资源,让Internet上其他用户通过代理服务器访问局域网内的资源。代理的对象是服务端,目标是让其他客户端可以访问服务端的资源(eg:公司内的负载均衡、静态资源服务器)

反向代理示意图.png

总结:正向代理与反向代理涉及到的技术基本一致,主要是因为应用场景不同而进行区别。

二、正向代理配置的指令

1.resolver指令:用于指定DNS服务器IP地址

2.resolver_timeout指令:用于设置DNS域名解析超时时间

3.proxy_pass指令:用于设置代理服务器的协议和地址(反向代理也会用到,到时候详细介绍)

因为正向代理服务的场合不多,所以指令较少,功能也比较简单

(另外关于nginx正向代理是否支持HTTPS,暂时还没尝试,以后实践了在补充)

三、反向代理配置的指令

1.proxy_pass指令:用于设置被代理服务器的地址

语法结构:
proxy_pass URL;
URL包含传输协议、主机名称或者IP地址加端口号等要素。传输协议通常是"http"或者"https"
注意upstream和proxy_pass搭配使用的两种情况
(1)proxy_list中指明了传输协议
upstream proxy_list
{
    server http://192.168.4.30/uri/;
    server http://192.168.12.19/uri/;
}
server
{
    location /
    {
        proxy_pass proxy_list;
    }
}
(2)proxy_list中没传输协议
upstream proxy_list
{
    server 192.168.4.30/uri/;
    server 192.168.12.19/uri/;
}
server
{
    location /
    {
        proxy_pass http://proxy_list;
    }
}

还有需要注意URL中是否包含URI,以访问"http://www.test.com/test/index.html"为例
server{
    server_name www.test.com;
    location /test/
    {
        #proxy_pass http://192.168.12.19; --->转到"http://192.168.12.19/test/index.html"
        #proxy_pass http://192.168.12.19/index/; --->转到"http://192.168.12.19/index/index.html"
        #proxy_pass http://192.168.12.19/; --->转到"http://192.168.12.19/index.html"
    }
}

2.proxy_hide_header指令:设置在发送HTTP响应时,隐藏一些头域信息

3.proxy_pass_header指令:设置一些头域信息以被发送

4.proxy_pass_request_body、proxy_pass_request_headers指令:是否将客户端的请求体、请求头发送给代理服务器

5.proxy_set_header、proxy_set_body指令:设置新的请求头、请求体发往代理服务器

还有14个指令,以后再慢慢补,先把自己常用的指令先整理出来。

四、nginx服务器负载均衡相关配置

nginx服务器是现在静态的给予优先级的加权轮询算法,主要使用配置proxy_pass和upstream指令,以下是实例

upstream backend
{
    server 192.168.4.30 weight=5;
    server 192.168.12.19 weight=3;
    server 192.168.11.17 ;  #默认weight=1
}
server
{
    location /
    {
        proxy_pass http://backend;
        proxy_set_header Host $host;
    }
}

根据backend服务器组中的不同的优先级别,实现加权轮询。 192.168.4.30的级别最高,优先接收和处理请求,192.168.11.17的级别最低,最少处理请求,192.168.12.19处于中等优先级。

轮询负载均衡就是将所有服务器组的weight设置为一样的即可

五、总结

在工作中经常会涉及到nginx代理相关的内容,但是总是一知半解或者随用随百度......希望有跟我一样想法的小伙伴可以通过这篇文章可以对nginx代理有更明确地认识和应用能力。

另外学习时间仓促,欢迎批评指正!

相关文章

  • Nginx-代理服务

    目录章节 代理示意图 Nginx代理服务 配置语法及反向代理场景 代理示意图 Nginx代理服务 如图所示 翻墙-...

  • Nginx+Tomcat 负载均衡的时候遇到了这个权限问题

    访问nginx服务器,无法代理tomcat服务器 注:单独测试tomcat,nginx.都可以访问nginx代理服...

  • 代理、转发

    代理、转发 正向代理,代理客户端,例如 vpn。 反向代理,代理服务端,例如 Nginx 分发流量。 Nginx可...

  • Nginx调度器以及相关优化

    nginx功能网站服务,网站代理(网站业务),四层代理(其他业务) 1.Nginx调度器 1. 使用nginx代理...

  • nginx

    nginx的概念 正向代理 反向代理 服务器的类型: Nginx的特点 Nginx的基本模块

  • uwsgi+nginx反向代理项目部署

    在linux下用uwsgi+nginx进行反向代理部署 nginx服务器:1.反向代理,代理uwsgi服务器。2....

  • 2019-07-22

    概念 负载均衡服务器: 正向代理服务器: 反向代理服务器: Nginx组成 Nginx二进制可执行文件 Nginx...

  • 借助Nginx搭建反向代理服务器

    借助Nginx搭建反向代理服务器 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器 一、反向代理:We...

  • nginx 在请求头request中增加header参数

    有两种方式可以实现这一操作: 1:nginx反向代理(需要两个nginx服务) 在nginx反向代理服务器通过使用...

  • 分布式服务器知识

    1. Nginx :Nginx是一款轻量级的Web 服务器/反向代理服务器 反向代理(Reverse Proxy)...

网友评论

    本文标题:Nginx代理服务

    本文链接:https://www.haomeiwen.com/subject/cziatqtx.html