用frp实现80端口不同域名,访问不同应用

用frp代理实现80端口不同域名,访问不同应用

参考博文

tomcat8080端口多应用
frp github文档

需求

  1. 今天早上项目经理,就问我能不能使用80端口不同域名访问,并且通过香港的服务器代理内陆阿里云服务器

在这里插入图片描述

模拟测试

tomcat 本地8080端口开启3个应用

  1. 应用名
    x.web1.com
    x.web2.com
    x.web3.com
  2. 准备tomcat
    1. webapp添加文件 web1 web2 web3
      在这里插入图片描述

    2. web1 web2 web3下添加index.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>ok</title>
      </head>
      <body>
      <h1>web1</h1>
      </body>
      </html>
      

      web2,web3 下修改成web2 web3

    3. 添加web.xml文件

      1. web1 web2 web3 下新建WEB-INFO目录
        在这里插入图片描述

      2. WEB-INFO下新建web.xml文件

        <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                              http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
          version="3.1"
          metadata-complete="true">
        
        </web-app>  
        
    4. 结果演示
      在这里插入图片描述

    5. 配置tomcat配置文件

      1. 向server.conf添加内容
        <Host name="x.web1.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
                                <Context path="" docBase="web1" />
        </Host>
        <Host name="x.web2.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
                <Context path="" docBase="web2" />
        </Host>
        <Host name="x.web3.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
                <Context path="" docBase="web3" />
        </Host>
        
        
    6. 注释掉ROOT目录对应的host
      在这里插入图片描述

    7. 启动tomcat

  3. 本地测试效果
    1. 准备:
      修改本机下 hosts文件,添加本地dns解析
      vim /etc/hosts
      127.0.0.1 x.web1.com
      127.0.0.1 x.web2.com
      127.0.0.1 x.web2.com

      在这里插入图片描述

    2. 测试
      curl x.web1.com:8080
      在这里插入图片描述
      curl x.web2.com:8080

      在这里插入图片描述
      curl x.web3.com:8080
      在这里插入图片描述

    3. 测试通过,删除本地hosts添加内容
      vim /etc/hosts
      在这里插入图片描述

配置代理服务器

  1. 注意: 代理服务要开发7000 8080端口,对应安全组也要开放
    本地服务器要开放8080端口,这里就不演示开放端口了
  2. 下载frp:github路径
    1. 我用的版本:v0.21.0

    2. 对应操作系统下载对应系统的,我代理服务器和本地服务器都是centos

    3. wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz

    4. tar -zxvf frp_0.21.0_linux_amd64.tar.gz

    5. cd frp_0.21.0_linux_amd64

    6. vim frps.ini

      [common]
      # frps 启动绑定的端口号
      bind_port = 7000
      # 暴露给外网的http地址
      vhost_http_port = 8080
      # 客户端登录的token
      token=123456
      
    7. 启动: ./frps -c frps.ini
      在这里插入图片描述

配置本地服务frp客户端

  1. 下载frp同服务端,解压后

  2. 修改: vim frpc.ini

    [common]
    # 代理服务器ip地址
    server_addr = 161.117.12.***
    # 代理服务 frp Server启动端口号
    server_port = 7000
    # 访问服务器身份认证
    token=123456
    [web01]
    type=http
    # 本地的应用的端口号
    local_port=8080
    # 代理服务绑定dns地址
    custom_domains=web1.com 
    # 访问路径的映射,可以写成/news   只有 web1.com/news 才会从这个映射
    locations=/
     # 转发tomcat 对应host路径
    host_header_rewrite = x.web1.com
    [web02]
    type=http
    local_port=8080
    # 代理服务绑定dns地址
    custom_domains=web2.com 
    locations=/
    # 转发tomcat 对应host路径
    host_header_rewrite = x.web2.com  
    [web03]
    type=http
    local_port=8080
    # 代理服务绑定dns地址
    custom_domains=web3.com 
    locations=/
    # 转发tomcat 对应host路径
    host_header_rewrite = x.web3.com 
    

    注意: 如果是自己应用,对应 custom_domains和host_header_rewrite需要修改

  3. 启动客户端:
    ./frpc -c frpc.ini
    在这里插入图片描述

最终测试

  1. 准备:

    1. 通过本地dns解析模型dns解析
      修改访问服务器的win10电脑本地hosts文件
      C:\Windows\System32\drivers\etc\hosts
      代理服务器ip地址 web1.com
      代理服务器ip地址 web2.com
      代理服务器ip地址 web3.com 
      
      在这里插入图片描述
  2. 打开浏览器:
    分别访问 web1.com:8080 web2.com:8080 web3.com:8080
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 测试成功

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。首先,我需要了解一些关于你的环境和要求的信息。你是否已经安装和配置了 Docker、GitLab、frp域名证书?如果没有,你需要先完成这些步骤。以下是一些基本的步骤,你可以根据自己的需要进行调整。 1. 安装 Docker 在安装 GitLab 之前,你需要先安装 Docker。Docker 是一个开源的容器化平台,可以轻松地部署和管理应用程序。你可以在 Docker 的官方网站上下载适用于你的操作系统的安装程序。 2. 安装 GitLab 安装 GitLab 的最简单的方法是使用 Docker Compose。你可以创建一个名为docker-compose.yml的文件,并将以下内容添加到文件中: ``` version: '3' services: web: image: 'gitlab/gitlab-ce:latest' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.example.com' letsencrypt['enable'] = true letsencrypt['contact_emails'] = ['you@example.com'] ports: - '80:80' - '443:443' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab' ``` 请注意,你需要将“gitlab.example.com”更改为你自己的域名。 3. 配置域名和 HTTPS 为了将 GitLab 部署到生产环境中,你需要将域名和 HTTPS 配置正确。这需要一些基本的系统管理员技能。以下是一些基本的步骤: - 在你的 DNS 服务提供商处设置域名解析,以将你的域名指向你的服务器 IP。 - 使用 Let's Encrypt 或其他证书颁发机构颁发证书。 - 配置 Nginx 或 Apache 等 Web 服务器,以将流量重定向到 GitLab 容器。 4. 配置 frp 穿透 为了让外部用户访问你的 GitLab 实例,你需要通过 frp 穿透到你的内部网络。以下是一些基本的步骤: - 在你的服务器上安装 frp。 - 在你的 frp 配置文件中添加一些条目,以将流量重定向到 GitLab 容器。 - 在你的路由器或防火墙上配置端口转发,以将流量重定向到你的服务器上的 frp。 以上是一些基本的步骤,你需要根据你的实际情况进行调整。希望这可以帮助你搭建一个成功的 GitLab 实例并通过 frp 进行穿透。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值