是否可以为端口号起别名?

CIs*_*ies 6 networking alias ip

我想在自定义端口上运行服务(例如 8080 上的 jenkins),并且我更喜欢通过浏览器使用我记得的名称来访问它,例如,http://localhost:jenkins这将是http://localhost:8080

  1. 这样的事可能吗?
  2. 如果是这样,它只是一个 HTTP 东西,还是所有网络协议都会知道这个别名?
  3. 另外,如果 (1) 为真,则其他操作系统(centos、windows 等)是否支持此功能

编辑:

  1. 从我输入地址的那一刻到问题得到解决,有哪些活动部分?我猜测浏览器解析器,因此可能有一个浏览器支持我的请求。之后,解析后的 url 可能会传递到操作系统进程,该操作系统进程反过来也可以实现我的请求并接受 str 而不是 int...这些部分中的任何一个都可以以这样的方式进行配置以满足我的需求吗?

Art*_*ild 7

这可以通过“反向代理”来解决 - 所以对这个领域进行一些研究。

它无法执行您实际要求的操作(别名端口号),但它可以为您提供另一种方法来为每个服务创建一条简单的路径(通过将 DNS 记录转发到特定的 IP 和端口)。

基本上,您可以使用反向代理执行以下操作:

  • 确保您的所有站点均提供 SSL 证书,并(如果您选择)HTTPS在这种情况下强制执行
  • 映射http://localhost:8080https://jenkins.local(端口转发)
  • 映射http://localhost/jenkinshttps://jenkins.local(位置向前)

以上适用于内部和外部 DNS 解析

我个人使用Nginx Proxy Manager,但Traefik也是一个流行的选择。

要了解要设置什么,Nginx 代理管理器如下所示:

在此输入图像描述

  • 嗯,你的第一点是“确保”和“执行”。无论如何,是否使用 HTTPS 的决定取决于管理员,我只是想强调这不是您必须做的事情。在很多情况下,使用 HTTP 更容易(而且仍然安全)。 (3认同)

小智 4

来自 rfc 1738 https://datatracker.ietf.org/doc/html/rfc1738#section-3.1

url 中的端口是数字

port

    The port number to connect to. Most schemes designate
    protocols that have a default port number. Another port number
    may optionally be supplied, in decimal, separated from the
    host by a colon. If the port is omitted, the colon is as well.
Run Code Online (Sandbox Code Playgroud)


Van*_*der 3

可以使用 Nginx、Apache、squid、lighthttpd 等解决方案。请注意,这些解决方案会将您的端口映射到您指定的任何名称,但它将独立于内部本地主机。您可以在Linux和基于Windows的系统中使用该软件。

这是一个阿帕奇的例子。

Listen IP_ADDR:80
NameVirtualHost IP_ADDR:80

<VirtualHost IP_ADDR:80>
  ServerName  yourname.yourdomain

  ProxyPass        / http://localhost:10000/
  ProxyPassReverse / http://localhost:10000/

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

另一个解决方案,如果您希望服务器易于记忆,则通过在不同的服务器上运行它来为 Jenkins 提供一个不同的 IP,然后将其映射为/etc/hosts192.168.1.1 Jenkins您基本上将其添加到文件中)。完成此操作后,假设您的 Jenkins 正在运行,192.168.1.1:3000您可以通过 访问它http://jenkins:3000

即使你这样做,所有网络协议都将无法工作,你将无法使用https://jenkins:3000.

希望这可以帮助!!