1. 什么是代理服务器
1.1. 代理服务器的好处
代理服务器架构
1)提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。 2)防火墙作用 由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息。 3)通过代理服务器访问不能访问的目标站点 互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,虽然不能出国,但也可直接访问外网。
1.2. 代理服务器的分类
正向代理和反向代理:
正向代理:架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。 用户能感知到代理服务器的存在。
反向代理:现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。 用户对代理服务器无感知。
2. 安装单机版nginx
2.1. nginx简介
Nginx是一款的 服务器/服务器及(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
2.2. 安装nginx服务
单机nginx服务器
1) 环境准备
修改ip
a;修改主机名,
b;修改网关能上网,
c;关闭防火墙
d;修改系统安全设置
1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件  
将SELINUX=enforcing改为SELINUX=disabled  重启机器即可。  
2) 安装GCC编译器等工具:
一、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
二、首先要安装 PCRE
PCRE 作用是让 Nginx 支持 Rewrite 功能。
1、下载 PCRE 安装包,下载地址:
[root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
2、解压安装包
[root@bogon src]# tar zxvf pcre-8.35.tar.gz
3、进入安装包目录
[root@bogon src]# cd pcre-8.35
4、编译安装
[root@bogon pcre-8.35]# ./configure [root@bogon pcre-8.35]# make && make install
5、查看pcre版本
[root@bogon pcre-8.35]# pcre-config --version
3) 下载安装Nginx:
CentOS 6.9下配置 yum 安装 Nginx。
第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo:
cd /etc/yum.repos.d/
vim nginx.repo
填写如下内容:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1
保存,则会产生一个/etc/yum.repos.d/nginx.repo文件。
下面直接执行如下指令即可自动安装好Nginx:
yum install nginx -y
安装完成,下面直接就可以启动Nginx了:
service nginx start
现在Nginx已经启动了,直接访问服务器就能看到Nginx欢迎页面了的。
2.3. 配置nginx服务
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; #负载均衡组 upstream myServer{ server 192.168.153.160:8080; server 192.168.153.161:8080; } server { listen 80; server_name 192.168.153.167; #如果是集群环境,此处换成虚ip 192.168.153.222 location / { proxy_pass http://myServer; }} include /etc/nginx/conf.d/*.conf;}
保存退出,重启nginx服务。
2) 测试负载均衡,访问相同的url,显示的是不同的tomcat服务器页面。
集群nginx服务器
3.1. 安装keepalived
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。类似软件还有(heardbeat,vcs).
在192.168.153.167和192.168.153.165两个机器分别执行下面的命令:
yum –y install keepalived
3.2. 配置keepalived
1) 修改192.168.153.167的配置文件/etc/keepalived/keepalived.conf
global_defs { notification_email { test@163.com } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_MASTER } vrrp_script chk_http_port { script "/usr/local/src/check_nginx_pid.sh" interval 2 weight 2 } vrrp_instance VI_1 { #state MASTER state BACKUP nopreempt interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_http_port } virtual_ipaddress { 192.168.153.222 #虚拟ip } } 2) 修改192.168.153.165的配置文件/etc/keepalived/keepalived.conf global_defs { notification_email { test@163.com } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_BACKUP } vrrp_script chk_http_port { script "/usr/local/src/check_nginx_pid.sh" interval 2 #(检测脚本执行的间隔) weight 2 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 66 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_http_port #(调用检测脚本) } virtual_ipaddress { 192.168.153.222 #虚拟ip } }
3) 以下是针对nginx状态进行检测的脚本,第一次nginx服务死掉时,会重新启动,如果Nginx服务无法正常启动,则杀掉keepalived进程
vim /usr/local/src/check_nginx_pid.sh
#!/bin/bash A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then /usr/sbin/nginx if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi
4) 设置keepalived开机自启动
chkconfig --level 23456 keepalived on
3.3. 测试
1) 启动两台192.168.153.167和192.168.153.165keepalived服务
2) 检查虚拟ip 192.168.153.222是否可以正常访问tomcat,并提供负载均衡服务。
3) 刷新后,session共享,tomcat服务轮询。
4) 通过192.168.153.160机器ssh 192.168.153.222(虚拟ip),发现虚拟IP在192.168.153.167上面。如下图
5) 关闭其中一台nginx(192.168.153.167)机器,并在windows机器cmd监控虚拟ip的连通性
6) 再次通过192.168.153.160机器ssh 192.168.153.222(虚拟ip),发现虚拟IP在192.168.153.165上面。如下图
7) 测试keepalived的抢占模式
a) 修改192.168.153.167的配置文件/etc/keepalived/keepalived.conf
b) 重启keepalived服务,通过ssh 192.168.153.222(虚拟ip)发现虚拟ip在主机192.168.153.167上。
c) 关闭192.168.153.167机器,通过ssh 192.168.153.222(虚拟ip)发现虚拟ip切换到备机192.168.153.165上。
d) 启动主机192.168.153.167,通过ssh 192.168.153.222(虚拟ip)发现虚拟ip切换回主机192.168.153.167上。
e) 访问http://192.168.153.222/qy73nginx/一切正常,无论是tomcat机器还是nginx都避免了单点故障。
至此,nginx单机版和集群版安装配置测试完成。
版权付亚东笔记博客所有,禁止转载!!付亚东Java笔记博客
我的笔记博客版权我的笔记博客版权