【nginx】快速入门——SpringBoot项目代理及图片代理

1. 简介

nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx专为性能优化而开发,性能是器最重要的考量,实现上非常注重效率,能经受高负载的考验,据报告能支持高达50,000个并发连接数。

Nginx不仅能做反向代理,实现负载均衡;还能可以作正向代理来进行上网等功能

本文只讲诉nginx如何在windows上配置SpringBoot项目以及图片转发代理,linux配置也类似。

2. Ngnix下载

官网下载链接:下载
选择相应版本即可,本文是在Windows上配置的。因此选择的是windows版本。
在这里插入图片描述
下载完成后直接解压即可。

Linux版本安装可以参考这个文章:ubuntu安装nginx

2. Nginx启动与停止

2.1 启动

方法1:直接双击启动
在这里插入图片描述
方法二 命令行方式启动:
进入nginx根目录,然后通过start ngnix即可启动

D:\StduyApp\nginx-1.20.2>start nginx

2.2 关闭

进入nginx根目录,通过命令 nginx -s stop即可关闭

D:\StduyApp\nginx-1.20.2>nginx -s stop

2.3 重新启动

进入nginx根目录,通过命令 nginx -s reload即可关闭

D:\StduyApp\nginx-1.20.2> nginx -s reload

3. Ngnix配置文件

在根目录里面有一个conf文件夹,下面有一个nginx.conf文件。
在这里插入图片描述
其中,我们主要编写的配置,就是这个 server代码块。这个server,可以有多个,里面配置的location也可以有多个。如下图所示

在这里插入图片描述

4. SpringBoot项目代理

  1. 启动Springboot项目

首先我们启动两个最简单的springboot项目。第一个端口为8081,返回的是一个字符串我是Nginx代理的页面,端口是8081

在这里插入图片描述
在启动第二个Springboot项目,端口是8082,返回字符串为我是8082端口的页面
在这里插入图片描述

  1. 修改配置文件
server {
        listen       80;
        server_name  localhost;
		# localhost主页,直接访问 http://localhost 就会跳转
        location / {
            root   html;
            index  index.html index.htm;
        }
        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

		
		# nginx代理 springboot项目1
		location /hello {
                proxy_pass http://localhost:8081/hello;			
		}

		# nginx代理 springboot项目2
		location /test2 {
                proxy_pass http://localhost:8082/test2;			
		}
    }

仔细查看上述代码,其实核心配置就3行。
在这里插入图片描述

  1. 重启ngnix

修改完成配置文件后,一定要重启!!!

nginx -s reload

重启完成后,通过浏览器分别访问http://localhost/hellohttp://localhost/test2
在这里插入图片描述

在这里插入图片描述

发现代理成功,当然我们现在访问原本的接口http://localhost:8081/hello,也是能访问的,如下图:
在这里插入图片描述
不过使用Nginx反向代理,一般最主要就是为了隐藏原服务器的地址。

5. 图片代理

  1. 原本图片地址

在这里插入图片描述
2. 修改配置文件
这里需要注意的是,location后面设置的是图片所在的目录名字,而下面的root设置的是图片目录的上一级路径。

    server {
		# 代理后的访问地址
        listen       80; 
		# 代理后的ip
        server_name  localhost;
		
		
		# localhost主页,直接访问 http://localhost 就会跳转
        location / {
            root   html;
            index  index.html index.htm;
        }
		#通过访问localhost:80/image/1.jpg 来实现代理访问 D:/StduyApp/nginx-1.20.2/image/1.png 这个图片
		# index 表示如果不加 具体图片名称,即 http://localhost/image,就默认访问的是1.png ,
        location /image {
            root   E:/;
            index  1.png;
        }
   }
  1. 重启nginx
nginx -s reload
  1. 验证是否代理成功

通过在浏览器输入http://localhost/image,若出现图片,说明代理成功,否则需要检查配置文件是否修改正确。

在这里插入图片描述

6. 代理html页面

首先,查看我们所代理的html页面的路径为:/usr/local/nginx/html/demo
在这里插入图片描述
其中index.html是项目的主页,nginx代理html页面常用的有两种方法.

  1. 方法一 通过 rootlocation配合, 访问 http://localhost/demo
	server {
        listen       80;
        server_name  127.0.0.1;
		location /demo {
			root /usr/local/nginx/html/;
			index index.html;
		}
    }

配置完成后,重启nginx

sbin/nginx -s reload
  1. 方法二 alias + location , 访问 http://localhost/demo
	server {
        listen       80;
        server_name  127.0.0.1;
		location /demo {
			alias /usr/local/nginx/html/demo;
			index index.html;
		}
    }

aliasroot区别:

  • 在nginx中使用root的时候,访问的服务器的其实是 localtion + root 组合成的路径,如果这个路径不存在,就会报404错误。比如上面如果修改成:
		location /demo {
			root /usr/local/nginx/html/demo;
			index index.html;
		}

然后你再访问http://localhost/demo,就会报404错误,因为它实际找的是服务器中的/usr/local/nginx/html/demo/demo路径中的index.html,实际上不存在这个路径。

  • 在nginx中使用alias的时候,访问的只是服务器中 alias的路径
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现nginx和tomcat一起部署springboot项目并实现tomcat集群,需要进行以下步骤: 1. 部署springboot项目到tomcat上,并启动多个tomcat实例,这些实例需要在不同的端口上运行。 2. 配置nginx作为反向代理服务器,将所有请求转发到tomcat集群中的一个实例上。可以使用upstream模块来配置tomcat集群,如下所示: ```nginx http { upstream tomcat_cluster { server tomcat1_ip:tomcat1_port; server tomcat2_ip:tomcat2_port; server tomcat3_ip:tomcat3_port; } server { listen 80; server_name example.com; location / { proxy_pass http://tomcat_cluster; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } ``` 在上面的配置中,tomcat_cluster是一个upstream实例,包含了所有tomcat实例的IP地址和端口号。nginx会将请求转发到tomcat_cluster中的一个实例上。 3. 配置session共享,以便在tomcat集群中的不同实例之间共享用户会话信息。可以使用memcached或redis等分布式缓存来实现session共享。 4. 配置负载均衡器,以便nginx可以根据不同的负载均衡算法来分配请求到不同的tomcat实例上。可以使用nginx自带的负载均衡模块或第三方模块,如nginx-upsync-module等。 5. 测试集群的可伸缩性和容错性,以确保tomcat集群可以在高负载和节点故障的情况下正常运行。 总结来说,要实现nginx和tomcat一起部署springboot项目并实现tomcat集群,需要进行反向代理、session共享、负载均衡器等多方面的配置和测试。这样可以保证项目的高可用性和可伸缩性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值