使用域名访问本地项目

3.1.统一环境

我们现在访问页面使用的是:http://localhost:9001

有没有什么问题?

实际开发中,会有不同的环境:

- 开发环境:自己的电脑
- 测试环境:提供给测试人员使用的环境
- 预发布环境:数据是和生成环境的数据一致,运行最新的项目代码进去测试
- 生产环境:项目最终发布上线的环境

如果不同环境使用不同的ip去访问,可能会出现一些问题。为了保证所有环境的一致,我们会在各种环境下都使用域名来访问。

我们将使用以下域名:

- 主域名是:www.leyou.com,leyou.com 
- 管理系统域名:manage.leyou.com
- 网关域名:api.leyou.com
- ...

但是最终,我们希望这些域名指向的还是我们本机的某个端口。

那么,当我们在浏览器输入一个域名时,浏览器是如何找到对应服务的ip和端口的呢?

3.2.域名解析

一个域名一定会被解析为一个或多个ip。这一般会包含两步:

- 本地域名解析
  浏览器会首先在本机的hosts文件中查找域名映射的IP地址,如果查找到就返回IP ,没找到则进行域名服务器解析,一般本地解析都会失败,因为默认这个文件是空的。
  - Windows下的hosts文件地址:C:/Windows/System32/drivers/etc/hosts
  - Linux下的hosts文件所在路径: /etc/hosts 
  样式:
      # My hosts
      127.0.0.1 localhost
- 域名服务器解析
  本地解析失败,才会进行域名服务器解析,域名服务器就是网络中的一台计算机,里面记录了所有注册备案的域名和ip映射关系,一般只要域名是正确的,并且备案通过,一定能找到。

3.3.解决域名解析问题

我们不可能去购买一个域名,因此我们可以伪造本地的hosts文件,实现对域名的解析。修改本地的host为:

    127.0.0.1 api.leyou.com
    127.0.0.1 manage.leyou.com

这样就实现了域名的关系映射了。

每次在C盘寻找hosts文件并修改是非常麻烦的,给大家推荐一个快捷修改host的工具,在课前资料中可以找到:

解压,运行exe文件,效果:

我们添加了两个映射关系(中间用空格隔开):

- 127.0.0.1 api.leyou.com :我们的网关Zuul
- 127.0.0.1 manage.leyou.com:我们的后台系统地址

现在,ping一下域名试试是否畅通:

OK!

通过域名访问:

原因:我们配置了项目访问的路径,虽然manage.leyou.com映射的ip也是127.0.0.1,但是webpack会验证host是否符合配置。

在webpack.dev.conf.js中取消host验证:disableHostCheck: true

重新执行npm run dev,刷新浏览器:

OK!
 

在Java本地开发环境中配置虚拟域名访问,通常涉及以下几个步骤:配置本地hosts文件、设置Web服务器(如Tomcat)的虚拟主机、以及确保本地开发环境(如Eclipse)与服务器配置一致。以下是详细的配置方法: ### 1. 配置本地hosts文件 本地hosts文件用于将域名映射到指定的IP地址。默认情况下,Java Web应用运行在本地时通常使用`localhost`或`127.0.0.1`。为了使用自定义域名(如`dev.myapp.local`),需要在hosts文件中添加映射。 - **Windows系统**:编辑 `C:\Windows\System32\drivers\etc\hosts` - **Linux/macOS系统**:编辑 `/etc/hosts` 在文件末尾添加如下内容: ``` 127.0.0.1 dev.myapp.local ``` 保存文件后,操作系统将`dev.myapp.local`解析为本地回环地址`127.0.0.1`,从而实现虚拟域名访问。 ### 2. 配置Tomcat虚拟主机(以Apache Tomcat为例) 如果使用Tomcat作为本地Web服务器,可以通过修改`server.xml`文件来配置虚拟主机,使得应用可以通过自定义域名访问。 编辑 `$CATALINA_HOME/conf/server.xml` 文件,添加或修改`<Host>`标签: ```xml <Host name="dev.myapp.local" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="myapp" reloadable="true"/> </Host> ``` 其中: - `name`:指定虚拟主机的域名。 - `appBase`:指定应用部署的目录,默认为`webapps`。 - `docBase`:指定具体Web应用的名称(即WAR包或文件夹名)。 这样,当访问`http://dev.myapp.local:8080`时,Tomcat会将请求路由到`myapp`应用。 ### 3. 配置Eclipse中的服务器 如果在Eclipse中使用内置的服务器(如Tomcat),需要确保Eclipse中配置的服务器与本地安装的Tomcat一致,并且能够识别虚拟主机配置。 - 在Eclipse中打开 **Servers** 视图。 - 右键点击,选择 **New > Server**。 - 选择与本地安装版本一致的Tomcat服务器。 - 在 **Server Locations** 部分选择 **Use Tomcat installation**,确保Eclipse使用的是你修改过的Tomcat配置。 ### 4. 配置Spring Boot项目(可选) 如果你使用的是Spring Boot框架,默认的访问端口为8080,可以通过`application.properties`或`application.yml`文件修改访问路径和端口。 ```properties server.port=8080 server.address=dev.myapp.local ``` 或使用YAML格式: ```yaml server: port: 8080 address: dev.myapp.local ``` 这样配置后,Spring Boot应用将监听`dev.myapp.local:8080`。 ### 5. 测试访问 完成上述配置后,启动Tomcat或Spring Boot应用,然后在浏览器中输入: ``` http://dev.myapp.local:8080 ``` 如果一切配置正确,应该可以正常访问本地开发的应用。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值