2016-01-05 26 views
5

Chcę używać Nginx 1.9 do równoważenia obciążenia TCP. Poszedłem za tutorialem w https://www.nginx.com/resources/admin-guide/tcp-load-balancing/, ale nie zadziałało.Skonfiguruj Nginx jako równoważnik obciążeń TCP

każdym razem starałem się rozpocząć nginx, mam błędy:

nginx: [emerg] unknown directive "stream" in /opt/nginx/nginx.conf 

Oto mój plik nginx.conf:

events { 
    worker_connections 1024; 
} 


http { 
# blah blah blah 
} 

stream { 
    upstream backend { 
     server 127.0.0.1:9630; 
     server 127.0.0.1:9631; 
    } 
    server { 
     listen 2802; 
     proxy_connect_timeout 1s; 
     proxy_timeout 3s; 
     proxy_pass backend; 
    } 
} 

Czy pls powiedz mi jak skonfigurować go w prawo ?

Odpowiedz

8

Najlepszym sposobem jest kompilacji nginx od źródła do wspierania stream dyrektywy:

./configure --prefix=/opt/nginx --sbin-path=/usr/sbin/nginx --conf-path=/opt/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_ssl_module --with-threads --with-stream --with-http_slice_module 
make 
sudo make install 
+0

To świetnie, ale prawdopodobnie miałeś na myśli tylko jeden "./Configure" w pierwszym poleceniu? –

+0

@JimW: Prawidłowo! Naprawiłem to. – anhldbk

5

Korzystanie Homebrew na OS X, to można zrobić z:

brew install nginx-full --with-stream 

Może to poprosi najpierw zainstalować z kranem homebrew-nginx, w takim przypadku może być konieczne uruchomienie usługi

brew install homebrew/nginx/nginx-full --with-stream 

, aby upewnić się, że kran zostanie zainstalowany jako pierwszy.

+1

Możesz również chcieć, aby był dostępny moduł strumienia SSL. Próbowałem uzyskać równoważną funkcjonalnie kompilację do wersji używanej w obrazie dokera Alpine nginx i używają tych samych parametrów kompilacji, co wstępnie zbudowane oficjalne pliki binarne nginx: – DanielSmedegaardBuus

+0

'--with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module - z -ipv6' – DanielSmedegaardBuus

+0

Zainstaluj z naparem i strumieniem SSL, ale bez powodzenia: 'brew install homebrew/nginx/nginx-full --with-stream --with-stream_ssl_module'. Wydaje się, że po prostu rozbiera to ostatnie (wraz z wszelkimi nieznanymi parametrami). Mogę to zweryfikować za pomocą 'nginx -V'. W rzeczywistości, na liście @DanielSmedegaardBuus zamieszczone, tylko '--with-mail' i' --with-stream' wydają się działać. Rozwiązałem go, instalując go na mojej maszynie wirtualnej VM, ale może ktoś tutaj zna rozwiązanie z wykorzystaniem naparu? –