如何配置nginx使ssh服务器通过subdomain.domain.tld:80可用
我想通过端口80上的子域使端口22上的ssh服务器可用 我想应该是这样的:如何配置nginx使ssh服务器通过subdomain.domain.tld:80可用,ssh,nginx,subdomain,Ssh,Nginx,Subdomain,我想通过端口80上的子域使端口22上的ssh服务器可用 我想应该是这样的: server { listen ssh.domain.tld:80; server_name ssh.domain.tld; location / { proxy_pass http://localhost:22; } } 但这行不通。nginx将接受这一点并从这个配置开始,但我只从ssh.domain.tld:80获得空响应
server {
listen ssh.domain.tld:80;
server_name ssh.domain.tld;
location / {
proxy_pass http://localhost:22;
}
}
但这行不通。nginx将接受这一点并从这个配置开始,但我只从ssh.domain.tld:80
获得空响应
我遗漏了什么?基本上你找错地方了:
- stock nginx可以代理web和/或电子邮件流量,它根本不处理ssh流量
- 子域是dns isue:在dns设置中配置它,您需要一个
和/或a
记录链接AAAA
到您的ssh服务器的ssh.domain.tld
ip地址
- ssh服务器侦听的端口是ssh服务器设置(请参见
特别是mansshd\u config
和listenadress
指令)port
- 您应该使用
将nginx配置为在80以外的端口(比如800)上运行,然后将sslh配置为在
/etc/default/sslh.conf
文件中将web流量重定向到该端口
此设置可能需要15分钟或更短时间 由于Nginx版本1.9.0,Nginx支持ngx_stream_core_模块,因此应该使用--with stream启用它。当启用流模块时,可以使用ssh协议tcp代理
stream {
upstream ssh {
server localhost:22;
}
server {
listen 80;
proxy_pass ssh;
} }
我在这里找到了我需要的东西:这使我能够转发tcp流量。正是我需要的东西,我一弄清楚细节就会给你一个详细的答案。。。3年后呢?我想情况已经不是这样了,也许答案应该更新?