一、反向代理的配置

1、配置一

要实现的最终效果就是:

在本地浏览器中输入:www.abc.com,访问到nginx服务器192.168.6.85:80下,然后nginx做反向代理跳转到127.0.0.1:8085的服务器上。

1.1 编写springboot的项目工程

配置端口为8085与8086两个项目工程,编写好代码后打成jar文件,上传到服务器并进行启动,可在配置文件中设置端口号(或启动的时候指定端口也可以)

java -jar xxx.jar --server.port=8085

java -jar xxx.jar --server.port=8086

java -jar -Dserver.port=8085 news-1.0.jar

java -jar -Dserver.port=8086 news-1.0.jar

1.2 在linux防火墙中开放8085与8086端口

firewall-cmd --zone=public --add-port=8085/tcp --permanent firewall-cmd --zone=public --add-port=8086/tcp --permanent

1.3 windows的host文件进行配置

配置域名映射的IP地址,当你在浏览器中输入一个域名后,它会先从本地的host文件中看有没有相应的配置,如果有的话,根据配置好的去执行,如果没有的话,再从网络上DNS域名解析服务器,找网络中的IP去执行。

在windows系统的host文件中进行域名和IP对应关系的配置

在C盘下,Windows文件夹中有一个System32,里面有一个drivers文件下,打开找到etc,有一个HOSTS文件,在最后一行添加:

192.168.8.54 www.abc.com

1.4 在Nginx中做请求转发的配置

server {     listen  80;     server_name localhost;  }

 把localhost改为服务器的IP地址: 192.168.6.85

 location / {     root   html;     proxy_pass http://192.168.6.85:8085/user/hello;     index  index.html index.htm; }

为什么要配置为127.0.0.1,是因为项目和nginx目前同在同一个linux下。

 

 2、配置二

要实现的最终效果就是:

使用nginx反向代理,根据访问的路径跳转到不同的端口的服务中,nginx的监听端口为9001,访问

http://192.168.8.54:9001/edu/ 直接跳转到127.0.0.1:8085/user/hello http://192.168.8.54:9001/vod/ 直接跳转到127.0.0.1:8086/user/hello 

2.1 在linux防火墙中开放9001端口

firewall-cmd --zone=public --add-port=9001/tcp --permanent

2.2 具体配置

打开 nginx.conf 文件,再添加一个server节点,写如下配置

server {     listen  9001;     server_name 192.168.8.54;           location   /edu/ {          proxy_pass http://localhost:8085/user/hello;     }     location   /vod/ {          proxy_pass http://localhost:8086/user/hello;     } }

说明:~ 符合是用的一种正则表达式的形式,意思就是说当你的访问路径中存在edu,就转发到8005 ,但是有个前提,如果使用了~ 线,proxy_pass 代理的服务器路径后面只能存在http://loalhost:8005 只能有IP地址+端口号

2.3 测试

在浏览器中输入

http://192.168.6.85:9001/edu/ http://192.168.6.85:9001/vod/

二、负载均衡的配置 

1、配置

在http块中添加如下配置

upstream myserver {     server  192.168.6.85:8085;     server  192.168.6.85:8086; }

 然后在server中把server_name 的值localhost改为 101.200.174.107

server {     listen  80;     server_name 192.168.8.54;  } 

 在location中配置 proxy_pass http://myserver;

location / {     root   html;     index  index.html index.htm;     proxy_pass http://myserver; }         

测试:  http://192.168.8.54/user/hello

2、负载均衡策略 

负载均衡是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。

Nginx提供了几种分配策略:

2.1轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

如果你买的两台服务器,配置不一致, 4核8G 1核2G

2.2 weight【轮询权重】

weight代表权重,默认值为1,权重越高被分配到的客户端请求越多

upstream myserver {     server  192.168.8.54:8085 weight=1;     server  192.168.8.54:8086 weight=3; } 

2.3 ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定一个后端服务器,可以解决session的问题

upstream myserver {     ip_hash;     server  101.200.174.107:8085;     server  101.200.174.107:8086; } 

 

2.4 fair (第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配

upstream myserver {     server  101.200.174.107:8085;     server  101.200.174.107:8086;     fair; } 

三、动静分离的配置 

1 、前端页面的请求设置

把前端资源上传到nginx服务的安装路径下/usr/local/nginx下

$(function() {     $("#btn").click(function() {         $.ajax({             url:"/ipport/index",             type:"post",             dataType:"text",             success:function(rs){                 $("#msg").text(rs);             }         });     }); })

2、 后端Controller的设置

@CrossOrigin @RestController public class IndexController {     @RequestMapping("/index")     public String index(){         System.out.println("进入项目1");         return "欢迎登录首页!";     } }

3、 Nginx的设置

upstream myserver {            server  192.168.6.85:8085;            server  192.168.6.85:8086; }

server {         listen       80;         server_name  192.168.6.85;         location / {             root /web/myweb;  #如果前面不加/ 则会在nginx的安装目录下,寻找myweb目录。如果加上/ ,则会在linux的根目录下去寻找             index index.html index.htm;         }         location /ipport/ {            proxy_pass http://myserver/;         }                  error_page   500 502 503 504  /50x.html;         location = /50x.html {             root   html;         }         }

location /image/ {     root /upload/; } 

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: