nginx反向代理实现不同域名映射到同一台服务器的80端口

本文介绍如何在预算限制下,将两个不同项目部署在同一服务器并实现通过不同域名访问。通过配置nginx代理,使得两个项目能共享80端口,分别对应各自的域名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前因:原本两个项目放在两台服务器,域名映射在不通外网ip的80端口。因为预算问题,现在要把两个不同项目放到同一台服务器,都通过域名直接访问(相当于是80端口)。这两个项目都是javaweb的项目

前置准备工作-->启动两个服务

两个域名需要先解析到同一个外网服务ip上

本次需求涉及的项目一台是纯网页不需要tomcat服务启动,另一台需要tomcat启动。如果都是tomcat服务只要放在不同的端口下启动就好了。按照我的实际需求需要一个tomcat服务,两个nginx服务,一台nginx用作启动纯网页服务,一台nginx用作核心的方向代理。

我这里是将纯网页的项目直接放到nginx的html包中将nginx监听地址改为8009。(因为服务启动在8009端口),nginx配置只需要将原始的80端口改成8009,直接启动nginx即可。

 

另一台服务器直接放在tomcat中启动,启动在8008端口。

核心工作-->配置nginx

核心的nginx配置如下:

核心nginx监听80端口,server_name为其中一个服务对应的域名。其中包含的reverse_proxy.conf配置如下:

这两个server监听的都是80端口,因为域名直接访问默认的是80端口。这边的代理会根据访问的实际域名进行相应的内网转发,不同的域名转发到不同的内网端口上。

此时,两个域名解析的ip是同一台服务器,当访问不同的域名时,会通过代理转到不同的服务。

这样一来通过nginx方向代理实现不同域名共享80端口就实现啦!

nginx是一种高性能的Web服务器,具有轻量级、高效、稳定等特点,广泛应用于Web服务器反向代理、负载均衡、动静分离、静态文件缓存等场景。针对同一端口实现对应不同静态页,并转发的需求,可以通过nginx的配置来实现。 首先,在nginx的配置文件中,需要定义一个server块,指定监听的端口号和域名。例如: ``` server { listen 80; server_name example.com; ... } ``` 接着,可以通过location块来指定不同的URL路径,并将其映射不同的静态文件。例如: ``` location / { root /var/www/html/default; index index.html; } location /blog { root /var/www/html/blog; index index.html; } location /images { alias /var/www/html/images; } ``` 在上面的配置中,第一个location块指定根路径的静态文件目录为/var/www/html/default,第二个location块指定/blog路径的静态文件目录为/var/www/html/blog,第三个location块指定/images路径的静态文件目录为/var/www/html/images,并利用alias指令来指定images路径的url映射。 最后,可以通过proxy_pass指令来实现转发。例如: ``` location /proxy { proxy_pass http://localhost:8080/; } ``` 在上面的配置中,当请求路径为/proxy时,nginx会将请求转发给本地的8080端口实现转发的功能。 通过以上配置,可以实现同一端口下对应不同静态页,并转发的需求。同时,在nginx的配置中,还可以配置缓存、反向代理等功能,以提高网站的性能和稳定性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值