美文网首页Java
Nginx反向代理实践

Nginx反向代理实践

作者: QiShare | 来源:发表于2021-08-17 14:34 被阅读0次

    概述

    Nginx反向代理(Reverse Proxy):反向代理是指服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。

    image

    反向代理的作用

    • 对客户端隐藏服务器(集群)的IP地址
    • 安全:作为应用层防火墙,为网站提供对基于Web的攻击行为(例如DoS/DDoS的防护,更容易排查恶意软件等
    • 为后端服务器(集群)统一提供加密和SSL加速(如SSL终端代理)
    • 负载均衡,若服务器集群中有负荷较高者,反向代理通过URL重写,根据连线请求从负荷较低者获取与所需相同的资源或备援
    • 对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务
    • 对一些内容进行压缩,以节约带宽或为网络带宽不佳的网络提供服务
    • 减速上传
    • 提供HTTP访问认证

    实践Nginx反向代理内网穿透8081端口

    • 目的:隐藏8081端口,通过访问80端口实现访问8081端口

    实现步骤

    • 我们配置api 在8081端口,并且成功部署,此时8081对外开放,所以可访问
    image
    • 以Ubuntu环境为例
    $ cd /etc/nginx/
    $ vim nginx.conf
    
    • Nginx http节点下 配置8081端口反向代理如下
     server {
            listen 80 default_server;
            listen [::]:80 default_server;
            location  /api/ {
                            proxy_pass http://127.0.0.1:8081;
                    }
    
                    location  /apidocs/ {  
                            proxy_pass http://localhost:8081/api/;
                            index swagger-ui.html;
                            error_page 404 http://localhost:8081/api/swagger-ui.html;
                    }
             }
    
    • 配置完成后重启Nginx服务
    $ service nginx restart
    
    image image
    • 至此,我们实现了nginx反向代理8081端口,通过访问80端口,代理到8081端口的目的
    • 重点理解Ngnix location&proxy_pass字段规则

    实现方式二配置upstream

    • 在http节点下,加入upstream节点
    upstream demo { 
       server ip:8080; 
       server ip:8081; 
    }
    
    • 将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称
    location / { 
          proxy_pass http://demo; 
    }
    

    Nginx配置https支持

     ##
            # add cnn SSL Settings
            ##
            server{
                    listen 443;
                    server_name demo.com;
                    ssl on;
                    ssl_certificate /etc/nginx/cert/test.pem;
                    ssl_certificate_key /etc/nginx/cert/test.key;
                    ssl_session_timeout 5m;
                    location / {
                                                #根域名或者ip
                                    proxy_pass http://demo.com;
                            }
            }
    

    相关文章

      网友评论

        本文标题:Nginx反向代理实践

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