本文介绍了如何配置Nginx以通过subdomain.domain.tld:80使ssh服务器可用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过端口80上的子域使端口22上的ssh服务器可用.

I want to make the ssh server on port 22 available through a subdomain on port 80.

我认为应该是这样的:

server {
    listen          ssh.domain.tld:80;
    server_name     ssh.domain.tld;

    location / {
        proxy_pass          http://localhost:22;
    }
}

但是它不起作用. nginx将接受此配置并从此配置开始,但是我只从ssh.domain.tld:80收到空响应.

But it won't work. nginx will accept this and start with this configuration, but I only get empty responses from ssh.domain.tld:80.

我想念什么?

推荐答案

自Nginx版本1.9.0起,NGINX支持ngx_stream_core_module模块,因此应使用--with-stream启用它.启用流模块后,可以使用ssh协议tcp代理

Since Nginx Version 1.9.0,NGINX support ngx_stream_core_module module, it should be enabled with the --with-stream. When stream module is enable they are possible to ssh protocol tcp proxy

stream {
upstream ssh {
    server localhost:22;
}
    server {
    listen        80;
    proxy_pass    ssh;
} }

https://www.nginx.com/resources/管理员指南/tcp-load-balancing/

这篇关于如何配置Nginx以通过subdomain.domain.tld:80使ssh服务器可用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 11:21