「Nginx」Nginx服务安装配置
in Nginx with 0 comment

「Nginx」Nginx服务安装配置

in Nginx with 0 comment

反向代理参考来源/负载均衡参考来源

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:用于配置网络监听

② server_name:用于虚拟主机的配置

③ 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为本机网卡

当主机停止服务时, 备机即可接管继续服务