2013-02-04 38 views
2

我想使端口22可用的SSH服務器通過端口子域80如何配置nginx的通過subdomain.domain.tld使ssh服務器:80可用

我認爲應該通過這樣的事情:

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

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

但它不會工作。 nginx會接受這個並從這個配置開始,但是我只從ssh.domain.tld:80得到空的響應。

我錯過了什麼?

+1

我發現我需要在這裏:https://github.com/yaoweibin/nginx_tcp_proxy_module/blob/master/README 這使我能夠轉發tcp流量。確切地說,我需要的東西,我會盡快給出詳細的答案^^ – xaedes

+0

...和3年後? – Tunisia

回答

0

基本上你找錯了地方:

  • 股票的nginx可以代理網絡和/或電子郵件通信,它不會在所有
  • 子域的ssh處理交通是一個DNS isue:在您的DNS設置進行配置,你需要一個A和/或AAAA記錄鏈接ssh.domain.tld到您的SSH服務器的ip-adres
  • 您的SSH服務器偵聽的端口是SSH服務器設置(見man sshd_config特別是ListenAddressPort指令)
2

您應該使用sslh

將nginx配置爲在不同於80的端口上運行,比如800,然後配置sslh以將Web流量重定向到/etc/default/sslh.conf文件中的端口。

此設置可能需要15分鐘。或更少。