使用nginx操作命令前提条件:进入nginx目录中 usr/local/nginx/sbin
1.启动nginx
./nginx
2.关闭nginx
./nginx -s stop
3.重新加载nginx
./nginx -s reload
4.查看版本号
./nginx -v
linux开启防火墙端口指令
firewall-cmd --zone=public --add-port=8081/tcp --permanent
开放8081tcp端口
开放后需要重启防火墙 firewall-cmd --reload
查看端口:firewall-cmd --list-all
位置:在nginx/conf/nginx.conf
nginx配置文件中有三部分
1.全局快
从配置文件开始到events块之间的内容 主要会设置一些影响nginx服务器整体运行的配置指令
比如 worker processes 1:值越大 可以支持的并发处理量越多
2.events块
主要影响nginx和用户网络的连接
比如 worker connections 支持的最大连接数
3.http块
nginx服务器配置中最频繁的部分 代理 缓存和日志定义等绝大多数功能和第三方模块都在这里
http块包括http全局块和server块
3.1http全局块
http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
3.2server块
与虚拟主机有密切联系
每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。
而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
1.修改nginx.conf配置文件
server快中 server_name 改为IP地址 192.168.145.129
location中添加转发路径
使用nginx反向代理,根据访问的路径跳转到不同端口的服务中
nginx监听端口为9001
1.准备工作
准备两个tomcat 一个8080 一个8081
在usr/src 中创建两个文件夹:tomcat8080 tomcat8081 分别在两个文件夹中放入tomcat安装包 解压 并启动
进入tomcat8081中的conf中 修改server.xml配置:
8005改为8015:
8080改8081:
2.创建测试页面和文件夹
分别在两个文件夹中的webapps中创建edu文件夹和vod文件夹 edu、vod中放一个可以区别两个tomcat 的html页面
3.修改配置
监听端口号为9001
如果路径包含edu 到8080端口
如果路径包含vod 到8081端口
location指令说明:
该指令用于匹配url
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~ 标识。
开放需要的端口 重启nginx
edu被转发到8080端口
vod被转发到8081端口
实现效果:
浏览器地址输入 192.168.145.130/edu/success.html 把请求平均分配到8080和8081
在两个tomcat的webapps中 创建edu文件夹
进行负载均衡配置
在nginx.conf中
在http块中添加upstream
修改location里的proxy_pass
重启nginx
第一次进入 8081
刷新 变成8080
1.轮询(默认)
按时间顺序平均分配到不同服务器 服务器宕机 会被自动剔除
2.weight
weight代表权重,默认为1,权重越高被分配的客户端越多,适用于服务器性能不均的情况
3.ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题
4.fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配
1.准备工作
创建data目录 里面创建www image目录
在image里加入success.html image里加入p1.jpg
2.配置nginx
location后加 /www/ root后加/data/
同样添加另一个location autoindex on是开启目录浏览下载功能
输入image路径,会出现下载目录:
输入图片路径 直接访问图片
需要有两台nginx服务器来保证高可用 一台主服务器,一台备用服务器
1.准备工作
1.两台服务器
2.在两台服务器安装keepalived
yum install keepalived -y
2.开始配置(修改keepalived配置文件)
配置文件位置:/etc/keepalived/keepalived.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.145.130
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state MASTER #备份服务器改为BACKUP
interface ens33 #网卡
virtual_router_id 51 #主备机必须相同
priority 100 # 主从机采取不同优先级 主机大 备机小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.145.50
}
}
配置详解:
router_id LVS_DEBELBACK #访问到主机 LVS_DEVELBACK是主机名字 在etc/host 中可以查看
vrrp_script chk_http_port 检测脚本配置
advert_int 1 心跳频率 每过一秒检测是否活着
从服务器基本一样 就是把state改成backup priprity改小
在两个服务器/usr/local/src/nginx_check.sh添加nginx_check.sh文件,内容:
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
进入虚拟路径,出现nginx画面
在linux输入 ip a指令
此处说明已绑定到192.168.145.50
关闭主机的keepalived和nginx
再次进入192.168.145.50
仍然可以进入