栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Manjaro配置nginx实现springboot程序的简单反向代理

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Manjaro配置nginx实现springboot程序的简单反向代理

不知道如何安装nginx的小伙伴可以看我的上一篇博客。

Mangaro安装nginxhttps://blog.csdn.net/weixin_44643107/article/details/121017655        接下来就是如何配置,博主实现的是简单代理,先讲一遍效果(博主也是第一次了解,如有不对,请多多在评论区指出)。

        我们有三台电脑,一台负责运行真正业务程序的电脑A(核心),一台安装nginx以来代理电脑A的中转站电脑B,最后就是我们使用的电脑C。正常情况下,我们是需要用C来访问A的业务的,但是由于安全性等考虑,电脑A一般都会被保护的很好,不会让外部直接访问到,这个时候,电脑B站了出来。由于电脑B使用nginx对电脑A进行了代理,所以当我们C想访问A时,会先访问到B,再由B来访问A,这样C并不能直接对A进行操作,保证了A的安全性。

        接下来讲一下简单原理,电脑B对电脑A所代理的是电脑A的端口。例如电脑B使用它的111.1:80端口代理了电脑A的222.2:8080端口(端口号肯定不是这样的,此文为了看的方便进行了简化)。这样一来,当我们电脑C想访问电脑A的222.2:8080时,会先访问电脑B的111.1:80端口 ,再由电脑B的111.1:80端口跳转到电脑A的222.2:8080端口。这样一来,电脑A是不是就很安全了。

        我这台电脑B的地址是192.168.2.115,默认端口是80(大部分电脑应该都是这个),我将用它来代理我电脑A的192.168.2.110端口。

        那么根据原理就可以进行配置了,首先我们要对电脑A上的springboot程序进行配置,找到该程序的application.properties文件,也就是配置文件。

        之后在里面配置上要使用的端口号和路径。端口号进行设置是因为电脑A会运行多个程序,全用默认端口会造成抢占端口的情况。这里我们将默认的8080端口改为8082端口。更改路径同样也是为了在电脑A运行多个springboot程序的时候,将不同的springboot 程序分别开。想象一下,万一有两个不同的springboot程序都有同一个叫做“add”的方法,那我们通过端口进行访问的时候就会造成冲突。

server.port=8082 # 配置端口
server.servlet.context-path=/a #配置访问地址
spring.jackson.default-property-inclusion=non_null #设置a字段为null的时候不显示

        配置好之后在电脑A上运行jar包

nohup java -jar Linux-0.0.1-SNAPSHOT.jar &

        这个时候电脑B还没有代理电脑A,我们用C来访问电脑A的192.168.2.110:8082端口是可以访问到这个程序里面的。

        当我们在电脑B下载完nginx之后,默认的下载路径应该是/usr/local/nginx/。如果不是也没有关系,cd到相对应的目录就可以。

        之后cd到conf目录下:
       

cd /usr/local/nginx/conf

        打开它的nginx.conf文件,推荐使用vim打开,如果没有的话使用vi也可以,这里使用的是vim

vim nginx.conf

文件里面各行代码的作用这里就不细谈了,感兴趣的可以看这个博客

https://www.cnblogs.com/muhy/p/10493708.html

        我们首先在整个文件的最顶行加上这一行代码:“user root;”

user root;
#user  http;
worker_processes  1;

        之后我们一路向下找,找到serve目录的80端口

 server {
        listen       80;
        server_name  localhost;

        之后我们将该目录的内容变更为

server {
        listen       80; #电脑B要代理的端口号,之后C访问B的80端口就可以
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

          location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
            root /home/data/file;
        }

         location ^~ /a{
            proxy_pass http://192.168.2.110/a; # 需要被代理的IP地址
        }

        location /favicon.ico {
            log_not_found off;
            access_log off;

        }
	
        }

        其中核心字段为

 location ^~ /a{
            proxy_pass http://192.168.2.110/a; # 需要被代理的IP地址
        }

        这里的“^~ /a”的原因可以看这篇博客

Nginx系列教程(6)Nginx location 匹配规则详细解说

          proxy_pass后面的地址就是我们需要代理的IP地址。

        全部写好之后,我们重新启动nginx。首先我们cd到nginx的sbin目录

cd /usr/local/nginx/sbin

        之后在该目录下运行 ./nginx -s reload

./nginx -s reload

          这样的话就完成代理啦,我们可以在电脑C上访问电脑B的80端口,记得后面加上/a,如果可以访问到数据,就说明我们成功啦。

        

http://192.168.2.115/a/add

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361622.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号