利用Nginx负载均衡的访问SpringBoot服务,还有如何利用Nginx实现404,500等错误页面的拦截

今天给大家讲一些如何利用Nginx负载均衡的访问SpringBoot服务,还有如何利用Nginx实现404,500等错误页面的拦截。

首先第一步就是下载Nginx软件,Nginx软件不需要任何的配置,直接就可以启动。

Nginx命令一般有:

重启:nginx -s reload

关闭:nginx -s stop

启动:start nginx

校验文件格式是否正确:nginx –t

要想知道Nginx是否启动完毕可以在任务管理器中查看,例如以下所示就表示已经成功打开了。

接下来就是看Nginx.conf这个配置文件的内容了,我们通过以下简单的配置就可以实现负载均衡和错误界面的拦截了,下面看具体案例介绍。

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
	fastcgi_intercept_errors on;
	upstream boot { 
      server 127.0.0.1:8001; 
      server 127.0.0.1:8002; 
	}
	

    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
		
	   location / {
            root   html;
            index  index.html index.htm;
        }
		
       location /bootTest/{ 
            ssi on;
            ssi_silent_errors on;
            proxy_read_timeout 300;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://boot;
	
		}
		
        error_page 400 401 402 403 404 /40x.html;
		
		location = /40x.html {
            proxy_pass  http://127.0.0.1:8001/bootTest/errorNginxTest;
        }
		
        error_page   500 502 503 504  /50x.html;
		
        location = /50x.html {
           proxy_pass  http://127.0.0.1:8001/errorTest;
        }
	}
}

具体的拦截步骤为:

1.创建自己的404.html页面,并放于网站根目录(也可以不创建,直接跳转到其它的地址)

2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on;

3.更改nginx.conf 在网站配置中在server 区域加入: error_page 404 = /404.html; 或者 error_page 404 = http://www.xxx.com/404.html;

4.测试nginx.conf正确性: /usr/local/nginx/sbin/nginx –t

5.重启nginx生效: /usr/local/nginx/sbin/nginx -s reload

  #502 等错误可以用同样的方法来配置。

  error_page  500 502 503 504 = /50x.html;

这里需要注意的是如果大家最后配置拦截还是有问题,最好把我上面的配置信息直接拷贝粘贴。因为一些很小的细节可能就会导致配置拦截不成功,所以大家一定要细心再细心。

最后就是SpringBoot项目的配置了,这里我写了两个控制类:一个是测试负载均衡的,一个是测试拦截错误界面的。这里我就不细说了,大家可以去下载我案例具体研究研究。

下面是项目每一个模块截图介绍:

下面是测试的结果截图介绍:

如果对上面的内容还有什么疑义或者问题都可以加我QQ:208017534咨询。

项目下载地址:http://download.csdn.net/detail/linzhiqiang0316/9883258

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏令仔很忙

Windows7系统下ASP网站的发布

控制面板——程序和功能——打开或关闭Windows服务,会弹出“Internet信息服务”的窗口,全选

601
来自专栏java一日一条

HttpInvoker运作原理

HttpInvoker是常用的Java同构系统之间方法调用实现方案,是众多Spring项目中的一个子项目。顾名思义,它通过HTTP通信即可实现两个Java系统之...

725
来自专栏xdecode

Windows中根据端口定位持有者程序

之前被一个问题所困扰, 电脑过一段时间就无法上网, 查询netstat, 会有大量的端口被占用, 但是看不出来是哪个程序开启的 ( 最终定位到是ADSafe搞得...

1697
来自专栏康怀帅的专栏

Memcached 安装配置

官方网站:http://memcached.org/ 安装 下载,解压,进入文件夹 $ sudo apt install libsasl2-dev libeve...

2523
来自专栏LinXunFeng的专栏

解决fatal: The remote end hung up unexpectedly

1195
来自专栏Hadoop实操

CM部署客户端配置失败异常分析

在Cloudera Manager修改了服务的客户端配置后,执行部署客户配置报如下异常:

783
来自专栏草根专栏

Angular CLI 简介

如果您正在使用angular, 但是没有好好利用angular cli的话, 那么可以看看本文.

1.1K10
来自专栏SAP梦心的SAP分享

SAP自定义权限对象

      SAP系统自带了很多的权限对象,每一个运行画面都有非常多的权限用到。不过标准的权限对象并不一定适合于用在客户自己开发的程序里面,所以每个ABAPer...

1908
来自专栏编程坑太多

springboot(20)Actuator使用

1344
来自专栏Java Edge

史上最快! 10小时大数据入门实战(八)- Hadoop 集成 Spring 的使用1 Spring Hadoop 开发环境搭建及访问 HDFS 文件系统

1093

扫码关注云+社区