本文主要以实例讲解如何使用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配置代理多个服务及伪集群实现相关推荐

  1. Nginx反向代理,负载均衡,Redis集群 Twemproxy,redis session共享,keepalived高可用-搭建千万级网站系统

    Nginx反向代理,负载均衡,redis session共享,keepalived高可用-搭建千万级系统架构 1.安装Nginx 安装机器IP地址为: 192.168.91.129 (主) 192.1 ...

  2. springboot配置Redis哨兵主从服务 以及 Redis 集群

    redis哨兵集群配置 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从 ...

  3. centos7 kafka2.3.1单机伪集群部署

    接上篇文章centos7 zookeeper单点部署,准备好相应的包 cp config/server.properties config/server0.properties vi config/s ...

  4. ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)

    为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群,可是我只有两天服务器怎么办呢?我试过两台服务器组件集群,但是无法启动,所以这里部署一个[一 ...

  5. NGINX配置基于Node.js服务的负载均衡服务器

    NGINX配置基于Node.js服务的负载均衡服务器 本部署指南说明了如何使用NGINX开源和NGINX Plus在Node.js应用程序服务器池之间平衡HTTP和HTTPS通信.本指南中的详细说明适 ...

  6. 关于localhost访问特别快而nginx配置代理后转发特别慢的解决

    关于localhost访问特别快而nginx配置代理后转发特别慢的解决 背景 解决过程 后续 背景 本地启动一个web应用,在采用localhost:port的方式访问的时候特别流畅,因为访问其它资源 ...

  7. nginx配置代理udp

    nginx配置代理udp nginx配置代理udp 1.配置nginx主配置文件 2.创建udp新配置文件 3.检查配置文件 4.重新加载配种文件 5.查看端口是否被监听 nginx配置代理udp 1 ...

  8. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置

    0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...

  9. zookeeper 在 windows 下配置伪集群环境

    安装启动zookeeper 在 Apache zookeeper 官网下载 https://www.apache.org/dyn/closer.cgi/zookeeper/ 下载后解压,我使用的是3. ...

最新文章

  1. 60-100-040-使用-DataSource-介绍
  2. 图解Http学习第四章
  3. 高程图 GridMap
  4. 在java中使用关键字导入包_java的import关键字的使用
  5. 将php中stat()得到的文件权限转成Linux形式
  6. iOS POST 上传图片
  7. 青蛙跳台阶(剑指 Offer 10- II)
  8. 计算机考试外贸出货单,史上最全订单跟进英文模板
  9. 信息理论-信源及信源熵
  10. php怎么生成缩略图,php怎么生成缩略图
  11. JAVA ECXCEL 考勤导入查询
  12. 选择华为帐号作为第三方登录的三个理由!
  13. 为什么要使用SSM框架进行项目开发
  14. 浅析json_encode
  15. 六十星系之31破军独坐子午
  16. python显示灰度图像,Python读取图像并显示灰度图的实现
  17. ES6转化ES5方法(处理低版本手机白屏等兼容问题)
  18. 【计算社会科学01】为何病菌屡屡将人类推向死神?人类该如何应对
  19. connection reset by peer
  20. 一文了解Java强制类型转换

热门文章

  1. PCB中贴片元件封装焊盘尺寸的规范
  2. 使用Excel数据分析工具进行多元线性回归分析
  3. 阿里实习生转正面试记
  4. html中td 的值不换行符,解决英文字母在td标签中不换行的问题
  5. 类加载(基本说明、流程图、类加载各个阶段完成的任务)
  6. ubuntu16.04,解决桌面右键菜单失效问题!
  7. Android 手机红外遥控器实现
  8. WIN7 | 网络正常,但网页打不开 | 远程计算机或设备不接受连接
  9. 大规模时间序列数据自动异常检测架构
  10. Linux系统配置及服务管理_第07章_存储管理2