简单实现nginx反向代理、负载均衡

1.1.nginx简介

Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx1.0.4发布。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

1.2.安装

1.2.1.安装GCC编译器等工具

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

1.2.2.安装 PCRE

wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

1.2.3.解压安装包

tar zxvf pcre-8.35.tar.gz

1.2.4.进入目录

cd pcre-8.35

1.2.5编译安装

./configure

make && make install

1.2.6 查看pcre版本

pcre-config --version

1.2.7 安装nginx

1>在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo

进入插入模式写入以下内容:

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/6/$basearch/

gpgcheck=0

enabled=1

wq!保存,会产生一个/etc/yum.repos.d/nginx.repo文件。

下面直接安装nginx就ok

yum install nginx -y

走到这里说明已经在下载了

安装完成,下面直接就可以启动Nginx了

service nginx start

这样说明启动成功了

启动成功直接访问服务器就可以到达nginx的欢迎页面

注:如果无法访问,关闭防火墙重启服务器即可

1.3 nginx实现反向代理

1.3.1 修改配置文件/etc/nginx/nginx.conf

# 定义Nginx运行的用户 和 用户组 如果对应服务器暴露在外面的话建议使用权限较小的用户 防止被入侵

user root;

#Nginx进程数, 建议设置为等于CPU总核心数

worker_processes 1;

#开启全局错误日志类型

error_log /var/log/nginx/error.log warn;

#进程文件

pid /var/run/nginx.pid;

events {

#单个进程最大连接数

worker_connections 1024;

}

http {

#扩展名与文件类型映射表

include /etc/nginx/mime.types;

#默认类型

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;

#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

server {

listen 80;

server_name 192.168.2.131; #本机IP

location / {

proxy_pass https://www.baidu.com;

}

}

include /etc/nginx/conf.d/*.conf;

}

这样就说明反向代理成功了

1.4 nginx实现负载均衡

1.4.1 安装JDK

yuminstall-yjava-1.8.0-openjdk-devel.x86_64

1.4.2 新建测试SpringBoot项目

我们用1台服务器模拟3台服务器的效果

所以我们只需要把项目端口号改成不一致的就ok

注意:我们是1台nginx服务器作为负载均衡服务器,还有1台应用服务器运行3个端口号不同的Tomcat模拟3台应用服务器

index代码 body内容 01 02 03 作为区分

<!DOCTYPE html>Titlenginx 01

Controller代码做个简单跳转

packagecom.cyh.nginx;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;/**

* @author Caiyuhui on 2019/8/24.

*/@Controllerpublic class MyController { @RequestMapping("/toIndex") public String toIndex(){return"index"; }}

打成jar包后我们通过XShell上传至服务器

1.4.3 修改配置文件

修改 /etc/nginx/nginx.conf

# 定义Nginx运行的用户 和 用户组 如果对应服务器暴露在外面的话建议使用权限较小的用户 防止被入侵

user root;

#Nginx进程数, 建议设置为等于CPU总核心数

worker_processes 1;

#开启全局错误日志类型

error_log /var/log/nginx/error.log warn;

#进程文件

pid /var/run/nginx.pid;

events {

#单个进程最大连接数

worker_connections 1024;

}

http {

#扩展名与文件类型映射表

include /etc/nginx/mime.types;

#默认类型

default_type application/octet-stream;

#Nginx进程数, 建议设置为等于CPU总核心数

worker_processes 1;

#开启全局错误日志类型

error_log /var/log/nginx/error.log warn;

#进程文件

pid /var/run/nginx.pid;

events {

#单个进程最大连接数

worker_connections 1024;

}

http {

#扩展名与文件类型映射表

include /etc/nginx/mime.types;

#默认类型

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;

#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

#负载均衡组

upstream cyh{

server 192.168.2.132:8081;

server 192.168.2.132:8082;

server 192.168.2.132:8083;

}

server {

listen 80;

server_name 192.168.2.131; #使用nginx服务器IP,集群使用虚ip

location / {

proxy_pass http://cyh;

}

}

include /etc/nginx/conf.d/*.conf;

}

每次刷新都是不同的Tomcat说明负载均衡部署好了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容