2016-11-01 114 views
1

我正在使用haproxy將端口轉發到Bitbucket服務器ssh。下面是HAProxy的配置:用於bitbucket服務器的Haproxy配置

frontend sshd 
     bind *:7999 
     default_backend ssh 
     timeout client 1h 

backend ssh 
     mode tcp 
     server localhost-bitbucket-ssh 127.0.0.1:7999 check port 7999 

但是,如果我這樣做:

sudo haproxy -f haproxy.cfg 

我收到以下錯誤:

[ALERT] 305/201411 (4168) : http frontend 'sshd' (haproxy.cfg:38) tries to use incompatible tcp backend 'ssh' (haproxy.cfg:43) as its default backend (see 'mode'). 
[ALERT] 305/201411 (4168) : Fatal errors found in configuration. 

但我指的是官方Atlassian的指南:https://confluence.atlassian.com/bitbucketserver/setting-up-ssh-port-forwarding-776640364.html是他們錯誤?

另外,如果我在bitbucket服務器之前啓動haproxy,bitbucket服務器無法啓動端口7999.我完全困惑。我已經付過了軟件,現在我需要找出自己如何配置它超過2天...

UPDATE

這是UFW爲Thomj提及。但爲什麼我需要haproxy?如果我無法將Bitbucket的ssh綁定到22端口?我不喜歡設置端口號。

回答

1

前端配置默認爲http模式,不能使用爲tcp配置的後端。嘗試在前端添加'模式tcp':

frontend sshd 
     bind *:7999 
     default_backend ssh 
     timeout client 1h 
     mode tcp 
+0

謝謝,我以前試過,但它開始抱怨綁定套接字0.0.0.0:7999。試過'''netstat -apn | grep「:7999」'''它向我展示了java(bitbucket服務器)。所以haproxy不會讓bitbucket使用端口7999? –

+0

您只能將一個進程綁定到端口。在這種情況下,HAProxy和Bitbucket Server都嘗試綁定到7999.您必須將其中一個配置爲使用其他端口。 – thomj

+0

好吧,如果我更改bitbucket上的端口,我必須在haproxy中編寫什麼? –