如何为Webapp创建公共URL

时间:2018-08-21 07:16:40

标签: java spring-boot web-applications

已为我分配了使用Spring Boot进行用户注册和登录的任务。前端,我用过百里香。我在本地主机中开发了该应用程序。

以下是可交付成果

Deliverables
  ● Source code ---- Done with GitHub
  ● Public working url of the webapp --- How to do???
  ● Tests - unit and integration tests. you may also choose to use a ci ---- Done 

我想知道如何为在localhost上开发的项目创建公共工作URL。

3 个答案:

答案 0 :(得分:3)

此过程称为deployment。您可以使用Heroku,只需遵循instructions。最后,您将获得一个http://my-lovely-app.herokuapp.com/之类的URL,该URL是公开的且有效。

答案 1 :(得分:0)

要回答此问题,首先需要了解http请求生命周期的概述:

  1. 用户在浏览器中输入URL:https://some.domain:8080/request/path?param1=value1&param2=value2
  2. 浏览器将URL分为协议方案(“ https”),服务器DNS名称(“ some.domain”),端口(8080),请求路径(“ / request / path”)和查询字符串(“ param1 = value1&param2 = value2“)。如果省略端口,则使用给定协议的默认端口(对于HTTP为80,对于HTTPS为443,等等)
  3. 浏览器执行DNS查找,以将服务器DNS名称转换为IP地址。
  4. 浏览器与服务器的IP地址建立TCP连接(理论上HTTP也可以使用UDP,但很少使用,因此我们将跳过这种情况)
  5. 如果使用HTTPS,则浏览器和服务器将执行TLS握手,在此期间,它们之间会交换并验证彼此的SSL / TLS证书链(通常,只有服务器提供其证书,而浏览器会对其进行验证,但是您可以并在浏览器中安装客户端证书和密钥)
  6. 浏览器通过TLS(如果使用HTTPS)或通过裸TCP(如果使用HTTP)将HTTP请求发送到服务器。
  7. 运行适用于您的应用程序的服务器运行软件会将请求路由到该请求,以获得将其发送回浏览器的响应。

第1点,第2点和第6点不需要您进行任何设置。

  • 要使第3点正常工作,您需要在某些公共DNS服务器上拥有正确的DNS记录。
  • 要使第4点正常工作,您的服务器需要具有ISP分配的公用IP地址。
  • 要使第5点正常工作,您的服务器需要安装由某些证书颁发机构颁发的有效SSL / TLS证书(如果仅需要HTTP,则可以跳过它)
  • 要使第7点正常工作,您的服务器需要安装适当的软件,并且您的应用程序的安装方式必须与本地开发机类似。

有很多服务可以为您提供全部3个或部分服务,其中一些甚至免费使用,直至达到一定容量。

让我们从服务器和IP地址开始:

  • 最严格,最底层的方法是从ISP购买公共IP,并将应用托管在本地计算机上。但是,由于可用性问题,不建议这样做:每当发生网络中断或断电或关闭计算机时,您的应用程序都将关闭。其他解决方案可提供更好的服务水平(它们具有冗余电源,互联网连接和人员,以确保一切皆可24/7运行)
  • 一种更高级别的方法是从某个托管公司购买虚拟或专用服务器(在Web上搜索“ VPS”,“专用服务器”或“ VM托管”以在您所在的地区找到一个)。例如Google Cloud Compute Engine,AWS EC2,M $ Azure,OVH)。这些公司将为您提供具有公共IP,完全管理访问权限(通常通过SSH)并对其可用性进行某些保证的服务器(通常范围从99%到99.99%-> 9s越多,价格越贵)。之后,您将需要安装和配置所有必需的软件,以便在此类服务器上运行您的应用程序。这些公司通常在其子域中提供DNS条目,并在包装​​中提供HTTPS证书,而费用很小甚至为零。他们中的许多人还提供了包含您选择的单独域的软件包,有时还包含证书。
  • 最高级的解决方案是云应用程序服务(如其他答案中提到的Heroku,AWS Beanstalk,Google App Engine,kubernetes集群等)。这些服务将提供一个可配置的实例池大小,以托管您的应用程序实例,并在它们前面进行一些负载平衡。这将使您的应用易于扩展,并具有很高的可用性。在大多数情况下,这是最好的解决方案:只需确保给定的服务提供商支持您的应用程序所需的技术堆栈即可。同样,提供此类服务的公司通常会提供带有DNS条目和HTTPS证书的软件包。

如果您需要单独购买DNS域(您不喜欢服务器提供商提供的任何软件包),只需搜索“ DNS名称”或“域名”,您会发现很多经销商。这些转销商将为您提供一个控制台,您可以在其中将服务器的IP地址绑定到DNS名称。

最后,如果您需要获取SSL / TLS证书,还可以在网络上搜索提供商,也可以使用来自https://letsencrypt.org/的免费自动证书

就是这样。

答案 2 :(得分:0)

只需转到命令行并通过键入“ cd(Web应用程序的路径)”导航到您的程序。然后在命令行中输入“ gcloud app deploy”。然后点击指向您网站的链接。