一, 需求簡介 :linux
1. 公司辦公,開發小團體在局域網內須要用一些應用,好比zookeeper,redis,rabbitmq等(這些軟件都在虛擬機 linux centos7 ). 問題在於公司人比較多, 分的動態ip有可能讓虛擬機橋接模式獲取ip失敗, 佔用ip的ip搶不上 . nginx
2.更改虛擬機模式, 爲NAT, 這樣本機windwos的ip搶的仍是很穩定, 這樣用nginx 轉發到 虛擬機裏面, 這樣就可使用. redis
二,nginx配置:windows
註釋: centos
1. 6278的端口是虛擬機tomcat的端口,本地還須要編譯測試tomcat 8080端口,因此改掉了linux裏tomcat的端口 . http協議, 因此配置的是http{ }tomcat
2. 其餘zookeeper 的2181端口, rabbitmq的5672端口,redis的6379端口都是tcp連接的, 配置stream{ }負載均衡
3. 192.168.99.99 是虛擬機NAT模式固定分配的ip. tcp
4. 如此, 訪問本機windows的ip好比 10.3.3.100:6278 就能直接轉發到 ,windows內 虛擬機linux 的tomcat 192.168.99.99:6278 端口.測試
三,軟件環境: centos7
本地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; } }