Nginx架构安装反向代理与负载均衡
Nginx架构
1、 什么是 nginx
Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师 Igor Sysoev 所开发,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。
2. 应用场景
A)http 服务器。Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器。
B)虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
C)反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
操作步骤:
1、 配置虚拟机
打开虚拟机克隆虚拟机如图:
设置克隆虚拟机网卡
启动克隆虚拟机
修改网卡地址及虚拟机IP地址:
vi/etc/sysconfig/network-scripts/ifcfg-eth0
清除原先网卡
vi /etc/udev/rules.d/70-persistent-net.rules
编辑完成,保存退出
然后重启虚拟机 /etc/init.d/networkrestart
注意:连接工具连接不上,请查看虚拟机是否被禁用了,是的请开启!
2、 Nginx安装
a) 要求的安装环境
第一步:需要安装 gcc 的环境。yum installgcc-c++
第二步:第三方的开发包。
l PCRE
PCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式
库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。
yum install -y pcre pcre-devel
注:pcre-devel 是使用 pcre 开发的一个二次开发库。nginx 也需要此库。
l zlib
zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,
所以需要在 linux 上安装 zlib 库。
yum install -y zlib zlib-devel
l openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的**和证
书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux
安装 openssl 库。
yum install -y openssl openssl-devel
b) 安装步骤
第一步:把 nginx 的源码包上传到 linux 系统
第二步:解压缩
tar zxfnginx-1.8.0.tar.gz
第三步:进入 nginx 目录使用 configure 命令创建makeFile安装文件。
cdnginx-1.8.0
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi |
第四步:注意:启动 nginx之前,上边将临时文件目录指定为/var/temp/nginx,需要在/var 下创建 temp 及 nginx 目录
mkdir /var/temp/nginx/client -p
make
make install
启动nginx如图:
查看nginx是否启动:
ps -ef | grep nginx
关闭防火墙:
service iptablesstop
测试登陆:
Nginx停止:
./nginx -s quit
3、Linux系统文件在window系统操作设置如下:
打开notepad++,插件》nppftp》show nppftp window
4、Nginx配置不同虚拟主机
第一种:通过不同端口配置配置不同虚拟主机:
./nginx -s reload
如果虚拟机访问不到的原因:
第二种:通过不同域名配置不同虚拟主机:
修改hosts配置默认路径C:\Windows\System32\drivers\etc
注意:hosts配置设置不一定立即生效的,可能需要重启
Nginx.Conf设置如图:
访问网页如图:
图1
图2
5、Nginx反向代理与配置负载均衡
注意:tomcat压缩包需要纯净(用已经配置的tomcat可能有其他部分的设置影响)
创建多个服务器tomcat:
mkdir tomcats
cp -rapache-tomcat-7.0.57/ ./tomcats/tomcat8081
cp -rapache-tomcat-7.0.57/ ./tomcats/tomcat8082
cp -rapache-tomcat-7.0.57/ ./tomcats/tomcat8083
修改每个服务器tomcat的端口号:
Tomcat8081端口修改:
Tomcat8082端口修改:
Tomcat8083端口修改:
启动服务器tomcat,配置批量服务器启动文件
chmod u+xstart-all
./start-all.sh
访问测试是否成功:
Nginx反向代理配置
upstream tomcat0{ server 192.168.243.137:8081; } |
server { listen 80; server_name www.igeekhome.com;
location / { # root html; proxy_pass http://tomcat0; index index.html index.htm; }
} |
Nginx负载均衡
upstream tomcat0{ server 192.168.243.137:8081; server 192.168.243.137:8082; server 192.168.243.137:8083; } |
server { listen 80; server_name www.igeekhome.com;
location / { # root html; proxy_pass http://tomcat0; index index.html index.htm; }
} |
如果需要某台服务器多承载点设置:
upstream tomcat0{ server 192.168.243.137:8081; server 192.168.243.137:8082; server 192.168.243.137:8083 weight=3; } |
测试:
第一次
刷新
刷新:
刷新:
注意:页面访问不了,请检查是否启动nginx以及是否启动tomcat