一·首先安装好nginx环境
反向代理实例
Nginx配置实例-反向代理实例1***********************
1、实现效果:使用nginx反向代理,访问www.123.com 直接跳转到127.0.0.1:8080
实验代码启动一个tomcat,浏览器地址栏输入127.0.0.1:8080,出现如下界面,
2、准备工作
在linux系统安装tomcat,使用默认端口8080
tomcat安装文件放到linux系统中,解压,
进入tomcat的bin目录中,启动tomcat服务器
3、在windows系统中通过浏览器访问tomcat服务器(注意全部试验IP要换成你自己的IP地址)
http://192.168.0.107:8080
图解分析如下
4、具体配置
第一步 在windows系统中host文件进行域名和ip对应关系的配置
C:\Windows\System32\drivers\etc 下的hosts记事本或是notepad++打开
在末行添加如下内容,
192.168.0.107 www.123.com
Ctrl+s保存退出
此时浏览器也能访问检测是否成功,但要的最终的访问方式直接用域名www.123.com来访问,不需要8080端口
第二部 在nginx进行请求转发的配置(反向代理配置)
更改完毕配置文件命令行检测文件是否正常
[root@rhel71 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
正常重新加载nginx配置文件使之更改生效
[root@rhel71 conf]# /usr/local/nginx/sbin/nginx -s reload
5、最终测试
Nginx配置实例-反向代理实例2***********************
1、实现效果使用nginx反向代理,根据访问的路径跳转到不同端口的服务中nginx监听端口为9001,
访问http://192.168.0.107:9001/edu/ 直接跳转到127.0.0.1:8080
访问http://192.168.0.107:9001/vod/ 直接跳转到127.0.0.1:8081
2、准备工作
(1).准备两个tomcat服务器,一个8080端口,一个8081端口
(2).创建文件夹和测试页面
[root@rhel71 src]#cd /usr/src/
[root@rhel71 src]# mkdir -p /usr/src/{tomcat8080,tomct8081}
分别报tomcat安装包放到tomcat8080,tomct8081各自目录下
a1.首先在tomcat8080目录下安装8080端口的tomcat步骤如下
[root@rhel71 ~]# cd /usr/src/tomcat8080
[root@rhel71 tomcat8080]# tar -xf apache-tomcat-7.0.70.tar.gz
[root@rhel71 tomcat8080]# cd /usr/src/apache-tomcat-7.0.70/bin/
[root@rhel71 bin]# ./startup.sh
a2.安装在tomcat8081目录下安装并更改tomcat端口为8081
[root@rhel71 ~]# cd /usr/src/tomcat8081/
[root@rhel71 tomcat8081]# tar -xf apache-tomcat-7.0.70.tar.gz
下面更改端口为8081步骤
[root@rhel71 conf]# cd /usr/src/tomcat8081/apache-tomcat-7.0.70/conf
[root@rhel71 conf]# pwd
/usr/src/tomcat8081/apache-tomcat-7.0.70/conf
[root@rhel71 conf]# vim server.xml
要更改的端口我在这里简单过滤出来
切换到tomcat8081下启动tomcat8081的服务
[root@rhel71 bin]# pwd
/usr/src/tomcat8081/apache-tomcat-7.0.70/bin
[root@rhel71 bin]# ./startup.sh
浏览器上检测访问两个端口
接下来分别在tomcat8080的webapps的目录下创建edu目录,并在目录下创建测试页面文件a.html具体步骤内容如下
[root@rhel71 ~]# cd /usr/src/tomcat8080/apache-tomcat-7.0.70/webapps/
[root@rhel71 webapps]# pwd
/usr/src/tomcat8080/apache-tomcat-7.0.70/webapps
[root@rhel71 webapps]# mkdir -p /usr/src/tomcat8080/apache-tomcat-7.0.70/webapps/edu/
[root@rhel71 webapps]# cd edu/
[root@rhel71 edu]# vim a.html
<h1>8080how time flies!</h1>
浏览器
接下来在tomcat8081的webapps的目录下创建vod目录,并在目录下创建测试页面文件a.html具体步骤内容如下
[root@rhel71 ~]# cd /usr/src/tomcat8081/apache-tomcat-7.0.70/webapps/
[root@rhel71 webapps]# pwd
/usr/src/tomcat8081/apache-tomcat-7.0.70/webapps
[root@rhel71 webapps]# mkdir -p /usr/src/tomcat8081/apache-tomcat-7.0.70/webapps/vod/
[root@rhel71 webapps]# cd vod/
[root@rhel71 vod]# vim a.html
<h1>8081!!</h1>
浏览器
3、具体配置
(1)找到nginx配置文件,进行反向代理配置
server {
listen 9001;
server_name 192.168.0.107;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081;
}
}
更改完毕配置文件命令行检测文件是否正常
[root@rhel71 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
正常重新加载nginx配置文件使之更改生效
[root@rhel71 conf]# /usr/local/nginx/sbin/nginx -s reload
4、最终测试
网Nginx配置实例-负载均衡***********************
1、实现效果
(1)浏览器地址栏输入地址http://192.168.0.107/edu/a.html,负载均衡效果,平均8080和8081端口中
2、准备工作
(1)准备两台tomcat服务器,一台8080,一台8081
(2)在两台tomcat里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面a.html,用于测试
3、在nginx的配置文件中进行负载均衡的配置
#在http模块里面添加 在#gzip on;下面添加
upstream myserver {
server 192.168.0.107:8080;
server 192.168.0.107:8081;
}
server {
listen 80;
server_name 192.168.0.107;
location / {
proxy_pass http://myserver;
}
4.最终测试
浏览器输入http://192.168.0.107/edu/a.html 之后按住F5不断刷新自动跳转分配均衡到其它页面
4、nginx分配服务器策略******
第一种轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
第二种weight
weight代表权重默认为1,权重越高被分配的客户端越多。
第三种ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。
第四种fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
Nginx配置实例-动静分离*****************
server {
listen 80;
server_name 192.168.0.107;
location /www/ {
root /data/;
#/data/是自己在/创建的之后分别创建www、image目录,
#一一对应a.html、BlueSky.jpg用于页面测试.
}
location /image/ {
root /data/;
autoindex on;
}
}
4.最终测试
(1)浏览器中输入地址
http://192.168.0.107/image/BlueSky.jpg
http://192.168.0.107/www/a.html
Nginx 配置高可用集群********************************
Keepalived+nginx高可用
2、配置高可用的准备工作
(1)需要两台服务器192.168.17.129 和192.168.17.131
(2)在两台服务器安装nginx
(3)在两台服务器安装keepalived
3、在两台服务器安装keepalived
(1)使用yum命令进行安装yum install keepalived –y
(2)安装之后,在etc里面生成目录keepalived,有文件keepalived.conf
4、完成高可用配置(主从配置)
(1)修改/etc/keepalived/keepalivec.conf配置文件
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.17.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script “/usr/local/src/nginx_check.sh”
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 备份服务器上将MASTER 改为BACKUP
interface ens33 //网卡
virtual_router_id 51 # 主、备机的virtual_router_id必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.17.50 // VRRP H虚拟地址
}
}
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.17.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 备份服务器上将MASTER 改为BACKUP
interface ens33 //网卡
virtual_router_id 51 # 主、备机的virtual_router_id必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.17.50 // VRRP H虚拟地址
}
}
5.最终测试
浏览器访问虚拟vip
把主服务器192.168.17.129的nginx和keepalived停掉,再输入192.168.0.50浏览器访问不断按F5刷新
此时vip会切换到从服务器里
###############################################################################