nginx负载均衡部署Spring boot项目

一、nginx简介

         Nginx 可以在大多数 UnixLinux OS 上编译运行,并有 Windows 移植版。对于新建站点,Nginx 是一个很强大的高性能Web反向代理服务,它具有很多非常优越的特性:在连接高并发的情况下,能够支持高达 50,000 个并发连接数的响应。  Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。处理静态文件,索引文件以及自动索引;打开文件描述符缓冲;无缓存的反向代理加速,简单的负载均衡和容错。FastCGI,简单的负载均衡和容错。

二、nginx安装部署

  1、centos安装nginx

  (1) 安装gcc编译器

         由于nginx是由c/c++开发,所以在linux环境下需要先安装gcc的编译器

yum -y install make zlib zlib-devel gcc-c ++ libtool openssl openssl-devel
 (2) 安装 pcre、openssl、zlib

         安装pcre(下载地址:PCRE download | SourceForge.net

         解压至指定目录(tar   zxfv  pcre-8.42.tar.gz) 

         脚本编译pcre源码:  ./pcre-8.42/configure 

#切换到 pcre目录:

cd   pcre-8.42

#生产.so动态库:

make    make install

#安装成功后查看版本: 

pcre-config --version

 

    oppssl下载地址(https://www.openssl.org/source/openssl)、zlib下载地址(http://zlib.net/zlib

解压和编译步骤和pcre一样

 (3)安装nginx服务器

       下载nginx安装包(nginx: download)解压至用户目录:tar zxvf nginx-1.15.3.tar.gz     

       编译nginx源码

./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/home/wuchengfeng/pcre \
--with-zlib=/home/wuchengfeng/zlib \
--with-openssl=/home/wuchengfeng/openssl

        安装成功后 

       安装成功后查看版本:  /usr/local/nginx/sbin/nginx -v 

  (4)nginx启动

        配置域名指向: 

        vi /etc/hosts   

        vi etc/resolv.conf

  

       vi  /etc/sysconfig/network

     修改nginx的配置文件添加域名: vi  /usr/local/nginx/conf/nginx.conf     

       ​​​​调整一下nginx服务器入口html下的index.html文件:  

     

         测试、启动nginx服务器:

/usr/local/nginx/sbin/nginx  -t

 

      启动命令:./nginx  

      重新加载配置文件:./nginx -s reload

      客户端域名访问测试:   

      

  关闭nginx 服务器 ./sibn/nginx -s  stop

  三、nginx+tomcat实现负载均衡

   1、配置域名

        安装好三台centos虚拟机Leader(ip:192.168.137.130,域名:80.app.server.cn)、Node1(ip:192.168.137.133)、Node2(ip:192.168.137.134),分别在Node1和Node2上安装好tomcat,启动tomcat在Leader上配置好nginx服务器,当客户端访问Leader的域名是,先到大nginx,然后通过nginx反向代理,转发给Node1或者Node2中的一台.

        

      

   2、配置nginx文件

http {

    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 6;
    gzip_types  text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

  server {
        listen       80;
        server_name  80.app.server.cn;
        charset koi8-r;
        access_log  logs/host.access.log  main;
        location / {
            proxy_pass   http://server80;
            index  index.html index.htm;
        }
    }



    upstream  server80{
       server  192.168.137.133:8080;
       server  192.168.137.134:8080;
    }

   

      3、访问nginx

       客户端访问80.app.server.cn 可以实现轮询访问两台服务器

四、SpringBoot项目部署

           pom.xml文件加入tomcat外部支持:

    <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <scope>provided</scope>
      </dependency>

            修改启动类:

package cn.fcw.bb.webapply;
import com.github.pagehelper.PageHelper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import java.util.Properties;
@SpringBootApplication(scanBasePackages = {"cn.fcw.bb.webapply"})
@MapperScan(basePackages = {"cn.fcw.bb.webapply.mapper"})
public class WebApplyApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(WebApplyApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SpringApplication.class);
    }

}


           将项目打成war包,分别部署到node1和node2的tomcat的wepapps下面,启动tomcat即可.

集成NginxSpring Boot应用程序需要进行一些配置和步骤。下面是一个简单的方法来实现这个过程: 1. 首先,确保你已经安装了Nginx服务器并成功运行。你可以按照中提到的步骤来安装和配置Nginx。 2. 在你的Spring Boot应用程序中,你需要确保应用程序的端口和Nginx的配置文件中的代理设置一致。默认情况下,Spring Boot应用程序使用8080端口,你可以通过在应用程序的配置文件(application.properties或application.yml)中设置`server.port`属性来更改端口。 3. 在Nginx的配置文件中添加一个代理配置来转发请求到Spring Boot应用程序。你可以在Nginx的配置文件中找到`http`部分,添加类似以下的配置: ``` server { listen 80; server_name localhost; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 这个配置将把所有的请求转发到Spring Boot应用程序在8080端口上运行的地址。你可以根据你的应用程序的实际情况进行调整。 4. 保存并关闭Nginx的配置文件。然后重新启动Nginx服务器以使配置生效。 现在,你的Spring Boot应用程序已经成功集成Nginx。你可以通过访问Nginx服务器的地址来访问你的应用程序。Nginx将会将请求转发到Spring Boot应用程序上。 请注意,上述配置只是一个简单的示例,你可能需要根据你的具体需求进行更多的配置。你可以参考中提到的示例来进行更复杂的配置,如负载均衡和反向代理。 希望这个简单的教程能够帮助到你!如果你有任何进一步的问题,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值