Nginx反向代理详解


前言

当你需要通过 Nginx 来代理自己的端口时,你就像打开了一扇大门,让你的应用程序能够以更安全、更高效的方式与外部世界进行通信。Nginx 是一个强大的开源反向代理服务器,它可以帮助你实现负载均衡、缓存加速、SSL 终止和许多其他功能。

在本篇博客中,我将向你展示如何使用 Nginx 来代理自己的端口。我们将探索如何配置 Nginx,使其成为一个可靠的中间层,将外部请求转发到你的应用程序运行的特定端口上。通过设置适当的代理规则,你可以轻松地实现域名映射、请求转发和负载均衡,同时保持应用程序的安全性和稳定性。


一、本地hosts是什么?

当介绍如何通过 Nginx 代理自己的端口之前,让我们先来了解一下本地hosts文件。

在计算机网络中,本地hosts(也称为hosts文件)是一个用于将主机名映射到 IP 地址的文本文件。它位于操作系统的本地文件系统中,可以在没有 DNS 服务器的情况下实现基本的域名解析功能。

当你在浏览器中输入一个域名时,操作系统会首先检查本地hosts文件是否包含该域名的映射规则。如果存在匹配的映射规则,它将使用hosts文件中定义的 IP 地址进行访问。通过编辑hosts文件,你可以手动添加自定义的域名和 IP 地址映射,以达到一些特定的目的,例如:

  1. 开发环境配置:你可以将本地开发服务器的 IP 地址与一个特定的域名关联起来,方便在浏览器中直接通过域名访问本地开发环境而不使用 IP 地址。
  2. 屏蔽广告或恶意网站:通过将广告或恶意网站的域名映射到无效的 IP 地址,你可以阻止这些域名加载。
  3. 访问被屏蔽的网站:有些国家或组织可能屏蔽了某些网站,你可以通过将这些网站的域名映射到有效的 IP 地址来绕过封锁。

下面是我本地的配置hosts示例:

首先在自己的电脑上根据路径找到hosts文件,C:\Windows\System32\drivers\etc

在这里插入图片描述
然后打开hosts文件就可以进行配置

在这里插入图片描述

通过上面的配置,就实现了域名和 IP 地址的映射。

二、nginx配置详解

1.实战配置

首先我们需要下载好nginx,我下载的是windows版本的nginx,大家只需要去官方网站下载即可,下面我们步入正题:

1. 第一步就是找到nginx的conf文件夹在里面新建一个conf文件

在这里插入图片描述
这个是我已经建好的conf文件。

2. 第二步就是添加配置代码

server {	
		server_name promotion.cdel.local;
        charset utf-8;
		listen 80;
        access_log  logs/access.promotion.cdeledu.com.log;
		resolver 127.0.0.1;

	 location /service-trade-favourable/ {  
     proxy_pass http://localhost:33012/;  
}
}

代码详解:

  1. server 块:这是 Nginx 配置文件中的主要块,用于定义一个虚拟服务器。
  2. server_name promotion.cdel.local;:指定了要匹配的服务器名。当请求的 Host头和该值匹配时,Nginx 将使用当前的 server 块进行处理。
  3. charset utf-8;:设置字符集为 UTF-8,以确保正确的编码和解析请求。
  4. listen 80;:指定 Nginx 监听的端口号为 80,这是 HTTP 请求的默认端口。
  5. access_log:logs/access.promotion.cdeledu.com.log;:定义了访问日志的位置和文件名。通过此配置,Nginx
    将记录访问日志到指定的文件中,便于后续分析和监控。
  6. resolver 127.0.0.1;:指定用于解析 DNS 的 IP 地址。在这个例子中,使用本地的 DNS 解析器(即127.0.0.1)进行域名解析。
  7. location /service-trade-favourable/ {}:这是一个 location 块,用于匹配特定的请求路径。
  8. proxy_pass http://localhost:33012/;:设置代理规则,将匹配到的请求转发到本地的端口 33012上。http://localhost:33012/ 是代理目标的地址。

这段配置的作用是,当请求的 Host 头与 promotion.cdel.local 匹配,并且请求路径为 /service-trade-favourable/ 时,Nginx 将代理该请求到本地的端口 33012 上。

你可以根据自己的实际需求,修改 server_name、listen 端口、location 路径和 proxy_pass 地址来满足你的代理需求。确保在使用此配置之前,已经安装并正确配置了 Nginx,并将该配置文件保存为有效的 Nginx 配置文件(通常以 .conf 结尾)。

3. 第三步就是在nginx中引入我们刚才添加的配置文件

我们需要找到nginx默认读取的conf文件并打开它。

在这里插入图片描述

然后在里面添加这样一条指令,用于包含外部的配置文件。

在这里插入图片描述

4. 第四步就是开启nginx

开启nginx非常简单,打开这个文件就可以。

在这里插入图片描述

2.演示效果

这个是我访问本地启动的服务得到的响应。

在这里插入图片描述

下面我们使用反向代理的路径发送请求,从结果可以看出,nginx代理已经成功了。
在这里插入图片描述

总结

在本篇博客中,我们探讨了如何通过 Nginx 对自己的端口进行代理。我们首先介绍了本地hosts文件的概念,它可以用来手动映射域名与IP地址。接着,我们提供了一个示例配置文件,解释了每个配置指令的作用和用法。

通过这个示例配置,我们学习了如何使用Nginx将特定的请求路径转发到本地运行的特定端口上。

总结起来,通过Nginx对自己的端口进行代理具有以下优点:

  • 提供更安全、更高效的通信方式。
  • 允许灵活地配置域名映射和请求转发规则。
  • 支持负载均衡,提高应用程序的性能和可伸缩性。

最后,我希望我的博客能为您提供有价值的信息,并对您在使用 Nginx 进行端口代理方面提供帮助,感谢您的阅读。

  • 41
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
nginx反向代理配置详解如下: 首先,需要进入nginx配置文件夹,可以使用命令cd /usr/local/nginx/conf进入该目录。然后,使用vim命令打开nginx.conf文件进行配置。 在nginx.conf文件中,可以找到server指令,用于配置反向代理。在该指令中,可以设置监听的端口号和服务器名。例如,可以使用listen 80和server_name localhost来设置监听80端口,并将localhost作为服务器名。 接下来,需要配置location指令,用于指定请求的转发规则。在location /指令中,可以使用proxy_pass指令将请求转发给后端的Tomcat服务器。例如,可以使用proxy_pass http://192.168.1.102:8080来将请求转发给IP地址为192.168.1.102、端口号为8080的Tomcat服务器。 最后,可以设置index指令来指定默认的索引文件。例如,可以使用index index.html index.htm来设置默认的索引文件为index.html或index.htm。 综上所述,nginx反向代理配置的详细步骤如下: 1. 进入nginx配置文件夹:cd /usr/local/nginx/conf 2. 打开nginx.conf文件进行配置:vim nginx.conf 3. 在server指令中设置监听的端口号和服务器名:listen 80; server_name localhost; 4. 在location /指令中使用proxy_pass指令将请求转发给后端的Tomcat服务器:proxy_pass http://192.168.1.102:8080; 5. 可选:设置index指令来指定默认的索引文件:index index.html index.htm; 请注意,以上是一个简单的nginx反向代理配置示例,具体的配置可能会因实际需求而有所不同。 #### 引用[.reference_title] - *1* *2* [Nginx反向代理配置](https://blog.csdn.net/weixin_42751488/article/details/124165105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Nginx反向代理配置详解](https://blog.csdn.net/qq_40165796/article/details/108662134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啄sir.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值