Nginx学习3:反向代理实例

Nginx配置实例-反向代理1

目标

打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 liunx 系统 tomcat 主页面中

准备工作

我们在官网下载好tomcat之后,直接将tomcat的压缩包放到相应的目录下编译解压,然后进入tomcat的bin目录中使用./startup.sh命令启动tomcat,如下图:
在这里插入图片描述
注意:要开放系统防火墙的8080端口才能访问tomcat的主页面,我这里懒得设置,所以就直接把虚拟机的防火墙给关了…

虚拟机IP地址加8080端口访问tomcat主页面,如下图:
在这里插入图片描述
我们也可以用一下命令查看tomcat的启动日志

tail -f catalina.out

在这里插入图片描述

主机配置

第一步 在 windows 系统的 host 文件进行域名和 ip 对应关系的配置

在这里插入图片描述

通过修改本地 host 文件,将 www.123.com 映射到我们虚拟机的IP地址(假装我们有一个域名…)

在这里插入图片描述

配置完成之后,我们便可以通过 www.123.com:8080 访问到第一步出现的 Tomcat 初始界面。

配置 nginx.conf 配置文件

在这里插入图片描述
如上配置,我们监听 80 端口,访问域名为 www.123.com,不加端口号时默认为 80 端口,故访问该域名时会跳转到 127.0.0.1:8080 路径上。

然后我们在主机浏览器输入 www.123.com ,访问到tomcat主页,如下图:
在这里插入图片描述

遇到的问题

注意:有的人在最后一步完成后可能会出现访问失败的情况,即输入 www.123.com 访问的是 nginx 的欢迎页面,这是因为我们没有指定配置文件启动 nginx 导致的,我们需要指定配置文件来重新启动一遍nginx,如下:

# 指定配置文件重启nginx
# nginx的启动目录/nginx -s reload -c /nginx的配置文件目录/nginx.conf
/usr/local/nginx/sbin/nginx -s reload -c /home/centos7-2/Nginx/nginx-1.20.1/conf/nginx.conf

# 指定配置文件启动nginx
# nginx的启动目录/nginx -c /nginx的配置文件目录/nginx.conf
/usr/local/nginx/sbin/nginx -c /home/centos7-2/Nginx/nginx-1.20.1/conf/nginx.conf

Nginx配置实例-反向代理2

目标

使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中
nginx 监听端口为 9001,
访问 http://192.168.126.131:9001/edu/ 直接跳转到 127.0.0.1:8080
访问 http://192.168.126.131:9001/com/ 直接跳转到 127.0.0.1:8081

准备工作

(1)准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口,如下图:
在这里插入图片描述
准备好两个 tomcat 服务器之后,我们修改这两个服务器的端口,如下图:

在这里插入图片描述

找到 tomcat 的配置文件,修改 server.xml 里面的内容。
首先把 shutdown 端口修改成8006,如下图:
在这里插入图片描述
然后再把 tomcat 运行端口修改成 8081,如下图:
在这里插入图片描述
总之,把所有跟另一个 tomcat 服务器相同的端口都改了,以避免发生端口冲突。

最后,去到 bin 目录底下将两个 tomcat 都启动起来,如下图:
在这里插入图片描述
再检查一下是否成功启动了,如下图:
在这里插入图片描述
在这里插入图片描述
我们可以看到,两个 tomcat 服务器都成功启动起来了。

(2)创建文件夹和测试页面
然后我们在两个 tomcat 服务器下面的 webapps 目录底下创建测试文件夹 edu、com 和测试页面 a.html、b.html,如下图:
在这里插入图片描述
在这里插入图片描述
我们来测试一下页面是否创建成功,如下图:
在这里插入图片描述
在这里插入图片描述

具体配置

(1)找到 nginx 配置文件,进行反向代理配置,如下图:

在这里插入图片描述

其中 9001 是 nginx 要监听的端口,server_name 就是本机的 ip 地址。~ /edu/中的“~”是一种正则表达式的形式,表示当路径中有 “eud” 时,则转发到相应的路径去。

最终测试

在这里插入图片描述

在这里插入图片描述

location 配置说明

该指令用于匹配 URL。
语法如下:

location [= | ~ | ~* | ^~] uri{
    
    

}
  1. = : 用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
  2. ~ : 用于表示 uri 包含正则表达式,并且区分大小写。
  3. ~* : 用于表示 uri 包含正则表达式,并且不区分大小写。
  4. ^~ : 用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。



PS:可以到我的个人博客查看更多内容
个人博客地址:小关同学的博客

猜你喜欢

转载自blog.csdn.net/weixin_45784666/article/details/120475730
今日推荐