一, 需求简介 :
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; } }