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

 

 

3Linux系统文件在window系统操作设置如下:

打开notepad++,插件》nppftp》show nppftp window



 

 

 

 

 

 

4Nginx配置不同虚拟主机

第一种:通过不同端口配置配置不同虚拟主机:


./nginx -s reload

如果虚拟机访问不到的原因:

 

第二种:通过不同域名配置不同虚拟主机:

修改hosts配置默认路径C:\Windows\System32\drivers\etc


访问www.igeekhome.com

注意:hosts配置设置不一定立即生效的,可能需要重启

       Nginx.Conf设置如图:

访问网页如图:

图1

 

 

 

图2

 

5Nginx反向代理与配置负载均衡

注意: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章