用nginx一直都不是很明白里面的各种操作,例如反向代理,负载均衡这些操作,都没了解过,就瞎照着网上扔上去一个配置就完事了。
结果,坑就来了。
先说说需求: 一共3个服务器,前端我1个,后端2个。 目的是需要所有的请求都请求到我前端的服务器上,在我前端服务器再次发送请求到后端的两个服务器上,听起来还算简单,但里面有个硬性要求就是。
必须通过内网ip地址访问后端服务器!
必须通过内网ip地址访问后端服务器!
必须通过内网ip地址访问后端服务器!
就是这个需求我直接跪了
先说说跪的原因:
内网ip有个要求,访问者必须在内网里发送请求,但用户是不可能在内网访问的,所以直接用内网的ip地址发送请求是获取不到任何信息的。

那通过内网ip地址发送请求的思路只能是:

用户依旧用外网ip地址发送请求,但所有接口的地址全部都是前端服务器的公网ip。也就是所谓的服务器代理。如图:所有请求都先通过一台服务器,这台服务器再通过内网ip地址访问各个不同的后台服务器。
在这里插入图片描述
理论说了那么多,事实上配置非常简单,只是有各种小坑需要注意。

干货:
1.配置前端所有发接口的地址
http://www.kalec.com/ABIS_ORIGIN
http://www.kalec.com/CAS_ORIGIN
在这里插入图片描述

这个配置相当于在你的所有请求都加一个前缀
如图:
每次发请求的请求头都是http://kalec.com/ABIS_ORIGIN/…
在这里插入图片描述

接下来就是nginx服务器配置了:

//打开nginx.conf文件
server {
        listen       80;
        server_name  kalec.com  http://www.kalec.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        location /ABIS_ORIGIN/ {
        	proxy_set_header Host $host:$server_port;
			proxy_pass http://172.99.300.122:8099/;
        location /CAS_ORIGIN/ {
        	proxy_set_header Host $host:$server_port;
			proxy_pass http://172.99.200.110:8090/;

以上就是nginx做的配置,需要记住 “/”这个符号很重要 不能少任何一个,认真看好所有“/”的地方,否则会发送错误的请求地址。

简单解释下配置:
当请求地址带有/ABIS_ORIGIN/的时候,会自动将地址替换成172.99.300.122:8099来发送请求
举例:
请求地址:http://www.kalec.com/ABIS_ORIGIN/order/list?page=1(外网请求地址)
经过nginx转发后:http://172.99.300.122:8099/order/list?page=1(内网请求地址)

到此为止,一个服务器转发内网ip请求的操作就完成啦~感谢观看。

用nginx一直都不是很明白里面的各种操作,例如反向代理,负载均衡这些操作,都没了解过,就瞎照着网上扔上去一个配置就完事了。结果,坑就来了。先说说需求: 一共3个服务器,前端我1个,后端2个。 目的是需要所有的请求都请求到我前端的服务器上,在我前端服务器再次发送请求到后端的两个服务器上,听起来还算简单,但里面有个硬性要求就是。必须通过内网ip地址访问后端服务器!必须通过内网ip地址访问后端服务器!必须通过内网ip地址访问后端服务器!就是这个需求我直接跪了先说说为什么跪内网ip有个要求,访问者
很多公司为了提高云服务器的安全性,采用nginx代理。 原料:三台云服务器,一台带有一个公网ip(),另外两台不需要公网ip,有内网ip即可,只要这三台的内网ip在同一个网段中。 准备:不带公网ip的云服务器安装好web环境,分别丢一个项目到上面。(当然数据库主从什么的也可以自行安装),带有公网ip服务器中安装Nginx 如果以上不会的可以查看我的往期博客。 只要以上步骤完成下面的就十分...
Nginx 实现AJAX跨域请求 AJAX从一个域请求另一个域会有跨域的问题。那么如何在nginx上实现ajax跨域请求呢?要在nginx上启用跨域请求,需要添加add_header Access-Control*指令。如下所示: location /{ add_header 'Access-Control-Allow-Origin' 'http://other.subdomain.com'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET
一、问题背景   在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用 request.getRemoteAddr() 就可以获取到客户端ip,但是当我们使用了nginx 作为反向代理后,使用 request.getRemoteAddr() 获取到的就一直是nginx 服务器ip的地址,那这时应该怎么办? 首先,一个请求肯定是可以分为请求头和请求体的,而我们客户端的IP地址信息一般都是存储在请求头里的。如果你的服务器有用Nginx做负载均衡的话,你
title: 利用nginx与frp/ngrok实现内网穿透,将网站架在自己家里或者公司内部 date: 2019-04-17 13:27:43 categories: 架构 author: mrzhou tags: nginx ngrok 利用nginx与frp/ngrok实现内网穿透,将网站架在自己家里或者公司内部 这个需求其实在天朝一直都是比较强烈的,对于一些小企业,...
文章目录1. 设置虚拟服务器2. 配置locations参考文档 在较高的层次上,将NGINX Plus配置为web服务器需要定义它处理哪些url以及如何处理这些url上的HTTP资源请求。在较低的级别上,配置定义了一组虚拟服务器,用于控制对特定域或IP地址的请求的处理。 每个HTTP虚拟服务器都定义了多个名为location的特殊配置实例,用于控制URI的处理。每个location都定义了当请求......