Nginx两个反向代理实例

1. 实例一

实现效果:
打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 tomcat 主页面中

环境: windows10 安装了tomcat和nginx

1. 打开tomcat,浏览器输入http://localhost:8080/,会显示以下页面

在这里插入图片描述

2. 修改windows下的host文件

在这里插入图片描述
在这里插入图片描述

此时浏览器输入http://www.123.com:8080/, 也可以访问tomcat页面,但是只输入http://www.123.com不可以访问,因为直接输入相当于访问的是80端口,而不是8080

3. 修改nginx的nginx.conf文件

在这里插入图片描述

此时浏览器输入http://www.123.com/也可以显示tomcat页面

访问过程分析:

在这里插入图片描述


2. 实例二

实现效果:
使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中,nginx 监听端口为 9001,

访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8080
访问 http:// 127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8081

1. 准备两个tomcat

将window是已经有的tomcat文件夹拷贝一份,重新命名,在电脑上创建两个用户变量

在这里插入图片描述

打开备份的tomcat文件夹中,编辑catalina.bat,startup.bat,shutdown.bat,将其中的“CATALINA_HOME”全部替换为“CATALINA_HOME2” “CATALINA_BASE”全部替换为“CATALINA_BASE2”

同时修改server.xml文件夹中使用的端口(修改和原文件不一样即可)

在Tomcat文件夹中的webapp文件夹中创建一个文件夹edu, 里面创建一个8080.html文件
在TomcatBackup文件夹中的webapp文件夹中创建一个文件夹vod, 里面创建一个8081.html文件

启动这两个tomcat, 分别访问这两个文件

在这里插入图片描述

2. 配置nginx.conf

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 反向代理是一种常见的服务器配置方式,它允许服务器将请求转发给不同的服务器进行处理。而Websocket是一种用于实现客户端与服务器之间实时通信的协议。在Nginx中配置反向代理Websocket,可以实现将Websocket请求转发给后端服务器进行处理。 下面是一个反向代理Websocket的配置实例: 1. 首先,在Nginx的配置文件中添加一个代理服务器的配置块。可以在Nginx的主配置文件(通常是/etc/nginx/nginx.conf)中的http块内添加如下代码块: ``` server { listen 80; server_name your-domain.com; location / { proxy_pass http://backend-server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ``` 2. 在上述代码中,我们定义了一个简单的HTTP服务器,并将请求转发给名为`backend-server`的后端服务器。你可以根据实际情况替换为后端服务器的IP地址或域名。 3. `proxy_http_version 1.1;`这一行代码用于指定使用HTTP/1.1协议进行通信。而`proxy_set_header Upgrade $http_upgrade;`和`proxy_set_header Connection "upgrade";`这两行代码则用于设置HTTP头部,以便在进行Websocket协议升级时,能够正确处理升级请求。 4. 最后,保存配置文件,并重新加载Nginx配置,使其生效。可以使用命令`sudo nginx -t`来检查配置文件是否正确,然后使用`sudo service nginx reload`重新加载Nginx配置。 通过上述配置,当客户端请求Websocket连接时,Nginx会将其转发给后端服务器进行处理。这样,我们就可以实现在Nginx上配置反向代理Websocket的功能。 ### 回答2: 反向代理websocket的配置实例nginx中可以通过使用proxy_pass和proxy_http_version指令来实现。 首先,我们需要在nginx的配置文件中打开http和http_realip_module模块: ``` http { ... include mime.types; default_type application/octet-stream; ... real_ip_header X-Forwarded-For; set_real_ip_from 0.0.0.0/0; } ``` 然后,我们需要配置一个server来处理WebSocket的请求: ``` server { listen 80; server_name example.com; location /ws { proxy_pass http://backend_server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ``` 在上面的配置中,我们通过proxy_pass将请求代理到后端服务器。需要将backend_server替换为实际的后端服务器地址。 通过设置proxy_http_version为1.1,我们确保nginx能够正确处理WebSocket请求。 然后,通过设置proxy_set_header Upgrade $http_upgrade和proxy_set_header Connection "upgrade",我们告诉nginx将请求升级为WebSocket连接。 最后,保存并重新加载nginx配置文件,使配置生效。 通过以上配置,nginx将会将所有发送到http://example.com/ws的WebSocket请求转发到后端服务器,并确保WebSocket连接能够正确建立。 这样,我们就完成了nginx反向代理WebSocket的配置实例。 ### 回答3: 反向代理可以使得Nginx能够处理WebSocket的流量,并将其转发到实际处理请求的后端服务器。下面是一个反向代理WebSocket的配置实例: 1. 在Nginx的配置文件中,找到http块,并添加以下配置: ``` map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream backend { server 127.0.0.1:8080; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } ``` 在该配置中,我们创建了一个名为`backend`的后端服务器组,其中该组只有一个服务器`127.0.0.1:8080`。`backend`可以根据实际情况进行修改。 2. 在`location /`块中,我们使用`proxy_pass`指令将所有流量转发到`backend`后端服务器组。为了支持WebSocket,我们还需要设置升级HTTP协议的相关HTTP头字段。`proxy_http_version`指令设置使用HTTP/1.1协议,`proxy_set_header`指令设置`Upgrade`和`Connection`这两个HTTP头字段的值,用来启用和维持WebSocket连接。 3. 保存并退出配置文件,然后重新加载Nginx配置: ``` sudo systemctl reload nginx ``` 上述配置实例会将所有流量转发到`backend`后端服务器组,包括WebSocket请求。这样,Nginx就能支持WebSocket反向代理的处理了。你可以根据实际需求进行相关配置调整,比如更改监听端口、设置SSL证书等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodePanda@GPF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值