当前位置:服务器 > > 正文

nginx 正向和反向代理(Nginx反向代理入门实战指南)

时间:2021-10-05 00:24:14类别:服务器

nginx 正向和反向代理

Nginx反向代理入门实战指南

概述

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

nginx 正向和反向代理(Nginx反向代理入门实战指南)

反向代理的作用

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

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

实现步骤

我们配置api 在8081端口,并且成功部署,此时8081对外开放,所以可访问

nginx 正向和反向代理(Nginx反向代理入门实战指南)

以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
    
    
  • 访问http://ip/apidocs/swagger-ui.html 成功

    nginx 正向和反向代理(Nginx反向代理入门实战指南)

    我们可以关掉服务器安全组规则,去掉8081端口-安全组规则,可以登录阿里云配置,以阿里云为例,其他同理

    http://ip/apidocs/swagger-ui.html 依然可以访问

    http://ip:8081/api/swagger-ui.html 不可访问

    nginx 正向和反向代理(Nginx反向代理入门实战指南)

    至此,我们实现了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反向代理入门实战的文章就介绍到这了,更多相关Nginx反向代理内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!

    上一篇下一篇

    猜您喜欢

    热门推荐