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