不知道如何安装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



