Teleport服务端默认WEB服务端口为7190,可以在TP服务器前面架设一个Nginx:

  • 可以将端口映射为默认端口,更好记;
  • 可以配置为使用域名方式访问你的TP服务;
  • 可以配置成HTTPS方式访问,更安全。

普通配置

从TP v3.x开始,部分页面使用了websocket 进行实时通讯,因此,Nginx的配置文件需要做一些额外调整,下面是一个示例(以Nginx服务与TP服务在同一台主机上为例):

# ...其他内容...

  server {
    listen 80;
    server_name www.your-teleport-domain.com;
    location / {
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass       http://127.0.0.1:7190;

      # 以下三行是websocket需要的
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }
  }

# ...其他内容...

如果Nginx与TP服务不在同一台主机上,那么还要记得在Nginx服务所在主机上为TP服务器开启相应的端口转发,默认的需要52089/52189/52389三个端口,具体的端口值,请检查你的TP服务核心配置文件 core.ini

配置为HTTPS

为提升安全性,可以将 nginx 配置为 https 方式访问。要这样做,需要将 nginx 的配置文件做如下修改:

# ...其他内容...

  server {
    listen 443;
    server_name www.your-teleport-domain.com;

    ssl on;
    ssl_certificate_key path/to/your/server-private-key.pem
    ssl_certificate path/to/your/server-cert.pem

    location / {
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass       http://127.0.0.1:7190;

      # 以下三行是websocket需要的
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }
  }

# ...其他内容...

其中,ssl_certificate_keyssl_certificate 是你的服务端证书的私钥和服务端证书。如果你不知道如何获取一份服务端证书,那么去了解一下 Let's Encrypt 将会是一个不错的开端。

注意

在 CentOS 7 中,如果使用系统自带的 firewall 防火墙,需要做以下两件事:

  1. 开放 80 端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent

  2. 如果系统开启了SELinux安全策略,需要允许http接入:

    setsebool -P http_can_network_connect on