nginx安装
官网可下载rpm包:https://nginx.org
可通过epel源下载:
epel #启用epel源
yum info nginx #查看信息
yum install nginx #下载安装
nginx #开启nginx服务
ss -ntlp #查看服务和端口
ngins -s stop #停止nginx服务
或
systemctl start nginx
ss -ntlp
systemctl stop nginx
注:如果用
nginx
命令启动nginx,必须用nginx -s stop
停止服务。反之systemctl start nginx
命令也是。
如需最新版本nginx可添加yum源下载:
cd /etc/yum/repos.d/
vim nginx.repo
输入以下内容:
[nginx]
name=nginx repo
baseurl=http://nginx.prg/packages/centos/7/x86_64
gpgcheck=0
enabled=1
yum info nginx #查看信息
yum install nginx #下载安装
nginx反向代理
# 使用 vim 编辑 XXX.conf(XXX为自定义配置文件名)
vim /etc/nginx/conf.d/XXX.conf
加入以下配置信息:
server {
listen 80;
# example.com www.example.com为域名
server_name example.com www.example.com;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 配置访问域名跳转到127.0.0.1:8090路径
proxy_pass http://127.0.0.1:8090/;
}
}
修改完成保存配置后
# 检查配置是否有误
nginx -t
# 重载 Nginx 配置
nginx -s reload
反向代理相关指令分析
① listen:用于配置网络监听
- 配置监听的IP地址
- 配置监听端口
② server_name:用于虚拟主机的配置
- 基于名称的虚拟主机配置
- 基于IP地址的虚拟主机配置
③ location:用于匹配 URL
location [ = | ~ | ~* | ^~] uri {
}
④ proxy_pass:用于设置被代理服务器的地址
⑤ index:用于设置网站的默认首页
- 用户在请求访问网站时,请求地址可以不写首页名称;
- 可以对一个请求,根据请求内容而设置不同的首页。
nginx负载均衡
1、需要两台以上已部署nginx的服务器。
如(192.168.10.1和192.168.10.2)
2、配置反向代理。
拦截192.168.10.2这台机子上配置的nginx接收到的所有请求被转发到192.168.10.1这台机子上对应端口号的服务(tomcat)去处理。
upstream tomcat_server{
# 转发到10.1这台机子的8080端口
server 192.168.10.1:8080;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://tomcat_server;
....
}
}
3、重启nginx服务器。
4、负债均衡的配置, 配置转发的权重。
upstream tomcat_server{
# 负载均衡,nginx指向多个服务器去处理接收的请求,其中weight是设置权重,两台机子负载均衡配置相同。
server 192.168.10.1:8080 weight=20;
server 192.168.10.2:8080 weight=10;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://tomcat_server;
....
}
}
搭建Keepalived
Keepalived需要依赖openssl
如果10.1服务器出现了故障,怎么使用10.2上的Nginx进行转发呢? 怎么设置主机和备机呢? 如果主机死了怎么进行故障移除呢? 如果主机从不可用到可用状态又怎么进行恢复添加呢? 这些功能都是可以通过Keepalived来进行设置的。
1、检查是否已安装openssl
rpm -qa | gerp openssl
2、安装keepalived
通过yum安装
# 安装依赖包
yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
yum install -y keepalived
安装路径为/etc/keepalived
通过二进制源码包安装
下载二进制源码包:http://www.keepalived.org/download.html
cd /usr/local
#解压文件
tar -zxvf keepalived-2.0.18.tar.gz
#编译
cd keepalived-2.0.18/
#--prefix 指定安装地址
#/usr/local/keepalived/ 安装的目录,不要和自己安装文件一个目录,不然报错
./configure --prefix=/usr/local/keepalived/
#编译并安装
make && make install
3、编辑Keepalived的配置文件
vim /etc/keepalived/keepalived.conf
配置内容如下:
设置主机
! Configuration File for keepalived
global_defs {
notification_email {
#mr@mruse.cn # 指定keepalived在发生切换时需要发送email到的对象,一行一个
#sysadmin@firewall.loc
}
notification_email_from xxx@163.com # 指定发件人
smtp_server smtp@163.com # smtp 服务器地址
smtp_connect_timeout 30 # smtp 服务器连接超时时间
router_id LVS_1 # 必填,标识本节点的字符串,通常为hostname,但不一定非得是hostname,故障发生时,邮件通知会用到
}
vrrp_script chk_tomcat { #详细看下面
script "/etc/keepalived/tomcat_check.sh" #检测服务shell
interval 2 #每个多长时间探测一次
weight -20 #每个多长时间探测一次
}
_instance VI_1 { # 实例名称
state MASTER # 必填,主机为MASTER,备机为BACKUP
interface ens33 # 必填, 节点固有IP(非VIP)的网卡,用来发VRRP包做心跳检测
mcast_src_ip 192.168.2.89 #本机的ip,需要修改
virtual_router_id 101 # 必填,虚拟路由ID,取值在0-255之间,用来区分多个instance的VRRP组播,同一网段内ID不能重复;主备必须为一样;
priority 100 # 必填,主机为100,备机要比100小如99
advert_int 1 # 必填,检查间隔默认为1秒,即1秒进行一次master选举(可以认为是健康查检时间间隔)
authentication { # 必填,认证区域,认证类型有PASS和HA(IPSEC),推荐使用PASS(密码只识别前8位)
auth_type PASS # 默认是PASS认证
auth_pass 1111 # PASS认证密码
}
virtual_ipaddress {
192.168.2.90 # 必填,虚拟VIP地址,允许多个
}
track_script { # 检测shell
chk_tomcat
}
}
设置备机
! Configuration File for keepalived
global_defs {
notification_email {
#mr@mruse.cn # 指定keepalived在发生切换时需要发送email到的对象,一行一个
#sysadmin@firewall.loc
}
notification_email_from xxx@163.com # 指定发件人
smtp_server smtp@163.com # smtp 服务器地址
smtp_connect_timeout 30 # smtp 服务器连接超时时间
router_id LVS_1 # 必填,标识本节点的字符串,通常为hostname,但不一定非得是hostname,故障发生时,邮件通知会用到
}
vrrp_script chk_tomcat { #详细看下面
script "/etc/keepalived/tomcat_check.sh" #检测服务shell
interval 2 #每个多长时间探测一次
weight -20 #每个多长时间探测一次
}
_instance VI_1 { # 实例名称
state BACKUP # 必填,主机为MASTER,备机为BACKUP
interface ens33 # 必填, 节点固有IP(非VIP)的网卡,用来发VRRP包做心跳检测
mcast_src_ip 192.168.2.91 #本机的ip,需要修改
virtual_router_id 101 # 必填,虚拟路由ID,取值在0-255之间,用来区分多个instance的VRRP组播,同一网段内ID不能重复;主备必须为一样;
priority 99 # 必填,主机为100,备机要比100小如99
advert_int 1 # 必填,检查间隔默认为1秒,即1秒进行一次master选举(可以认为是健康查检时间间隔)
authentication { # 必填,认证区域,认证类型有PASS和HA(IPSEC),推荐使用PASS(密码只识别前8位)
auth_type PASS # 默认是PASS认证
auth_pass 1111 # PASS认证密码
}
virtual_ipaddress {
192.168.2.92 # 必填,虚拟VIP地址,允许多个
}
track_script { # 检测shell
chk_tomcat
}
}
4、启动keepalived
service keepalived start
5、检测keepalived是否启动成功
ip add show eth1 #eth1为本机网卡
当主机停止服务时, 备机即可接管继续服务
本文由 Kame 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 3,2020