一, 需求簡介 :
1. 公司辦公,開發小團體在局域網內需要用一些應用,比如zookeeper,redis,rabbitmq等(這些軟件都在虛擬機 linux centos7 ). 問題在於公司人比較多, 分的動態ip有可能讓虛擬機橋接模式獲取ip失敗, 占用ip的ip搶不上 .
2.更改虛擬機模式, 為NAT, 這樣本機windwos的ip搶的還是很穩定, 這樣用nginx 轉發到 虛擬機里面, 這樣就可以使用.
二,nginx配置:
注釋:
1. 6278的端口是虛擬機tomcat的端口,本地還需要編譯測試tomcat 8080端口,所以改掉了linux里tomcat的端口 . http協議, 所以配置的是http{ }
2. 其他zookeeper 的2181端口, rabbitmq的5672端口,redis的6379端口都是tcp鏈接的, 配置stream{ }
3. 192.168.99.99 是虛擬機NAT模式固定分配的ip.
4. 如此, 訪問本機windows的ip比如 10.3.3.100:6278 就能直接轉發到 ,windows內 虛擬機linux 的tomcat 192.168.99.99:6278 端口.
三,軟件環境:
本地windows7, linux centos7 , nginx 1.9.0
worker_processes 1; events { worker_connections 1024; } #這是http的配置方法 http { server { listen 6278; server_name localhost; #charset koi8-r; access_log logs/host.access.log; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://192.168.99.99:6278; #proxy_pass http://tomcat_inner; proxy_connect_timeout 600; proxy_read_timeout 600; error_log logs/error_tomcat_inner.log; } } #負載均衡 #upstream tomcat_inner { # server http://192.168.99.99:6278 weight=8; #} } #這是tcp的配置方法 stream { #for zookeeper upstream zookeeper { # simple round-robin server 192.168.99.99:2181; } server { listen 2181; proxy_pass zookeeper; } #for rabbitmq upstream rabbit { # simple round-robin server 192.168.99.99:5672; } server { listen 5672; proxy_pass rabbit; } #for redis upstream redis { # simple round-robin server 192.168.99.99:6379; } server { listen 6379; proxy_pass redis; } }