服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - Nginx反向代理入门实战指南

Nginx反向代理入门实战指南

2021-09-24 16:31QiShare Nginx

反向代理:反向代理也叫reverse proxy,指的是代理外网用户的请求到内部的指定web服务器,并将数据返回给用户的一种方式,这是用的比较多的一种方式,下面这篇文章主要给大家介绍了关于Nginx反向代理的相关资料,需要的朋友可以参考下

概述

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

Nginx反向代理入门实战指南

反向代理的作用

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

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

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

实现步骤

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

Nginx反向代理入门实战指南

以ubuntu环境为例

?
1
2
$ cd /etc/nginx/
$ vim nginx.conf

nginx http节点下 配置8081端口反向代理如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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服务

?
1
$ service nginx restart

访问http://ip/apidocs/swagger-ui.html 成功

Nginx反向代理入门实战指南

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

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

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

Nginx反向代理入门实战指南

至此,我们实现了nginx反向代理8081端口,通过访问80端口,代理到8081端口的目的

重点理解ngnix location&proxy_pass字段规则

实现方式二配置upstream

在http节点下,加入upstream节点

?
1
2
3
4
upstream demo {
   server ip:8080;
   server ip:8081;
}

将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称

?
1
2
3
location / {
      proxy_pass http://demo;
}

nginx配置https支持

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
##
       # 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反向代理内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/6997283001272893476

延伸 · 阅读

精彩推荐
  • Nginx利用nginx和腾讯云免费证书制作https的方法

    利用nginx和腾讯云免费证书制作https的方法

    这篇文章主要介绍了利用nginx和腾讯云免费证书制作https的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    dalaoyang5992019-12-30
  • Nginxnginx ssl免密码重启教程详解

    nginx ssl免密码重启教程详解

    这篇文章给大家介绍了nginx 如何启动以及nginx ssl 免密码重启 的方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧 ...

    mrr4272019-11-19
  • NginxNginx location 和 proxy_pass路径配置问题小结

    Nginx location 和 proxy_pass路径配置问题小结

    本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,进行测试,完全还原了整个测试过程,本文给大家介绍Nginx location 基本配置及相关配...

    自由早晚乱余生18742021-09-24
  • NginxNginx Rewrite使用场景及代码案例详解

    Nginx Rewrite使用场景及代码案例详解

    这篇文章主要介绍了Nginx Rewrite使用场景及代码案例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    盗哥泡茶去了11862020-09-27
  • Nginx如何优化Nginx的处理性能

    如何优化Nginx的处理性能

    Nginx是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx是Apache服务不错的替代品。其特点是占有内存少,...

    Dockone.io5142020-12-11
  • NginxNginx动静分离实现案例代码解析

    Nginx动静分离实现案例代码解析

    这篇文章主要介绍了Nginx动静分离实现案例代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    盗哥泡茶去了3382020-09-27
  • Nginx通过Nginx规则重写URL去掉index.php不显示index.php

    通过Nginx规则重写URL去掉index.php不显示index.php

    Nginx不仅占用内存少,并发能力强,而且拓展功能丰富,可以通过安装模板来强化功能,也能通过规则优化,优化服务器并发处理能力,是建站的不二之选...

    Genius日记5872020-10-16
  • Nginxnginx rewrite 伪静态配置参数和使用例子

    nginx rewrite 伪静态配置参数和使用例子

    nginx下伪静态配置参数详细说明,使用nginx的朋友,nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 ...

    服务器之家3102019-10-08