Nginx配置代理多个服务及伪集群实现
本文主要以实例讲解如何使用nginx代理本地多个项目,以及如何使用nginx构造本地项目集群。以Windows环境为例,Linux环境修改相应配置依然适用。
一、nginx代理本地多个项目
1.1 新建配置目录
进入nginx安装目录,进入conf目录,新建一个子目录:vhosts_conf(以此为例)
1.2 新建配置文件
在vhosts_conf目录下新建配置文件,如下:
项目A:vhosts_projA_dev.conf
项目B:vhosts_projB_dev.conf
项目C:vhosts_projC_dev.conf
其他项目:依此类推
1.3 编辑配置文件
1.3.1 vhosts_projA_dev.conf
upstream a.52study.com {server 127.0.0.1:8080 weight=1;# server 127.0.0.1:8081 weight=1;# server 127.0.0.1:8082 weight=1;
}server {listen 80;server_name 127.0.0.1;location ~ /images/+ {proxy_pass http://a.52study.com;}location ~ /download/.*\.(gif|jpg|jpeg|png)$ {root D:/home/static;expires 1d; }location / {proxy_pass http://a.52study.com;proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 50m; client_body_buffer_size 10m; proxy_buffers 32 4k; proxy_connect_timeout 3; proxy_send_timeout 60; proxy_read_timeout 60;}error_page 404 http://a.52study.com/projA/notFound;
}
1.3.2 vhosts_projB_dev.conf
upstream b.52study.com {server 127.0.0.1:8090 weight=1;
}server {listen 100;server_name 127.0.0.1;location ~ /images/+ {proxy_pass http://b.52study.com;}location ~ /download/.*\.(gif|jpg|jpeg|png|mp4)$ {root D:/home/static;expires 1d;}location / {proxy_pass http://b.52study.com;proxy_redirect off; proxy_set_header Host $host:100; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 50m; client_body_buffer_size 10m; proxy_buffers 32 4k; proxy_connect_timeout 3; proxy_send_timeout 60; proxy_read_timeout 60;}error_page 404 http://b.52study.com/projB/notFound;
}
1.3.3 vhosts_projC_dev.conf
upstream c.52study.com {server 127.0.0.1:9000 weight=1;
}server {listen 120;server_name 127.0.0.1;location ~ /images/+ {proxy_pass http://c.52study.com;}location ~ /download/.*\.(gif|jpg|jpeg|png|mp4)$ {root D:/home/static;expires 1d;}location / {proxy_pass http://c.52study.com;proxy_redirect off; proxy_set_header Host $host:120; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 50m; client_body_buffer_size 10m; proxy_buffers 32 4k; proxy_connect_timeout 3; proxy_send_timeout 60; proxy_read_timeout 60;}error_page 404 http://c.52study.com/projC/notFound;
}
1.3.4 nginx.conf
修改conf目录下的nginx.conf文件,注意,此处将注释部分均删除,本地配置文件可根据实际情况保留
worker_processes 1;events {worker_connections 1024;
}
http {include mime.types;default_type application/octet-stream;client_body_buffer_size 10m;client_max_body_size 50m;client_body_temp_path temp/client_body_temp;sendfile on;keepalive_timeout 65;include vhosts_conf/vhosts_projA_dev.conf;include vhosts_conf/vhosts_projB_dev.conf;include vhosts_conf/vhosts_projC_dev.conf;
}
做完以上操作,重启nginx
1.4 增加host映射
修改hosts文件,文件位置:C:\Windows\System32\drivers\etc\hosts,新增如下配置
127.0.0.1 a.52study.com
127.0.0.1 b.52study.com
127.0.0.1 c.52study.com
1.5 创建服务
新建三个server,分别对应以上三个项目,如下图
修改projB和projC的配置,修改完记得CTRL+S保存,如下图
projB
projC
分别启动服务,即可同时使用多个系统了,当然电脑性能不好的童鞋还是不要冒险尝试了,可能会卡
projA访问地址:http://a.52study.com/projA
projB访问地址:http://b.52study.com:100/projB
projC访问地址:http://c.52study.com:120/projC
二、nginx构造本地项目集群
稍微留心一点的童鞋可能会发现 “1.3.1 vhosts_projA_dev.conf” 中,upstream里面有两行注释的代码,解开注释,就是本地集群的做法,其中 weight 是权重
当然,本地也需要启动多个项目,以projA为例,以上配置修改为如下
upstream a.52study.com {server 127.0.0.1:8080 weight=1;server 127.0.0.1:8081 weight=1;server 127.0.0.1:8082 weight=1;
}
新建三个eclipse的server,分别对应三个projA系统,我们分别以projA(port:8080),projA1(port:8081),projA2(port:8082)对其命名
修改projA1的配置,如下:
修改projA2的配置,如下:
分别启动projA,projA1,projA2,即完成本地集群
清空三个server的控制台,访问:http://a.52study.com/projA,当某个页面存在多个请求时,会发现,三者后台会分担多个请求
Nginx配置代理多个服务及伪集群实现相关推荐
- Nginx反向代理,负载均衡,Redis集群 Twemproxy,redis session共享,keepalived高可用-搭建千万级网站系统
Nginx反向代理,负载均衡,redis session共享,keepalived高可用-搭建千万级系统架构 1.安装Nginx 安装机器IP地址为: 192.168.91.129 (主) 192.1 ...
- springboot配置Redis哨兵主从服务 以及 Redis 集群
redis哨兵集群配置 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从 ...
- centos7 kafka2.3.1单机伪集群部署
接上篇文章centos7 zookeeper单点部署,准备好相应的包 cp config/server.properties config/server0.properties vi config/s ...
- ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群,可是我只有两天服务器怎么办呢?我试过两台服务器组件集群,但是无法启动,所以这里部署一个[一 ...
- NGINX配置基于Node.js服务的负载均衡服务器
NGINX配置基于Node.js服务的负载均衡服务器 本部署指南说明了如何使用NGINX开源和NGINX Plus在Node.js应用程序服务器池之间平衡HTTP和HTTPS通信.本指南中的详细说明适 ...
- 关于localhost访问特别快而nginx配置代理后转发特别慢的解决
关于localhost访问特别快而nginx配置代理后转发特别慢的解决 背景 解决过程 后续 背景 本地启动一个web应用,在采用localhost:port的方式访问的时候特别流畅,因为访问其它资源 ...
- nginx配置代理udp
nginx配置代理udp nginx配置代理udp 1.配置nginx主配置文件 2.创建udp新配置文件 3.检查配置文件 4.重新加载配种文件 5.查看端口是否被监听 nginx配置代理udp 1 ...
- Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置
0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...
- zookeeper 在 windows 下配置伪集群环境
安装启动zookeeper 在 Apache zookeeper 官网下载 https://www.apache.org/dyn/closer.cgi/zookeeper/ 下载后解压,我使用的是3. ...
最新文章
- 60-100-040-使用-DataSource-介绍
- 图解Http学习第四章
- 高程图 GridMap
- 在java中使用关键字导入包_java的import关键字的使用
- 将php中stat()得到的文件权限转成Linux形式
- iOS POST 上传图片
- 青蛙跳台阶(剑指 Offer 10- II)
- 计算机考试外贸出货单,史上最全订单跟进英文模板
- 信息理论-信源及信源熵
- php怎么生成缩略图,php怎么生成缩略图
- JAVA ECXCEL 考勤导入查询
- 选择华为帐号作为第三方登录的三个理由!
- 为什么要使用SSM框架进行项目开发
- 浅析json_encode
- 六十星系之31破军独坐子午
- python显示灰度图像,Python读取图像并显示灰度图的实现
- ES6转化ES5方法(处理低版本手机白屏等兼容问题)
- 【计算社会科学01】为何病菌屡屡将人类推向死神?人类该如何应对
- connection reset by peer
- 一文了解Java强制类型转换