Nginx配置https请求,以及Nginx+keepalived实现高可用

本文详细介绍了如何配置Nginx以支持HTTPS请求,包括证书的生成和配置过程。同时,深入探讨了如何使用Keepalived实现Nginx服务器的高可用性,确保服务的连续性和稳定性。

一、Nginx配置https请求

要实现Nginx配置https请求,安装的时候需要加上 --with-http_ssl_module,因为http_ssl_module不属于Nginx的基本模块。

./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

1、创建证书

SSL 证书是一种互联网上身份验证的方式,可以用来标识和证明通信双方身份的数字信息文件。使用SSL 证书的网站,能够保证用户和服务器间信息交换的保密性。SSL证书由浏览器中“受信任的根证书颁发机构”在验证服务器身份后颁发,具有网站身份验证和加密传输双重功能。Nginx创建证书步骤如下:

(a)openssl genrsa -des3 -out server.key 1024

创建服务器私钥,采用rsa算法生成服务器私钥,然后存放在server.key文件中。

(b)openssl req -new -key server.key -out server.csr

创建证书请求文件csr,用于申请证书,csr核心内容是一个公钥

(c)cp server.key server.key.org

备份一份服务器密钥文件

(d)openssl rsa -in server.key.org -out server.key

去除使用私钥的口令验证

(e)openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

生成证书文件server.crt,其中x509是一种证书格式,-days 365证书有效期365天,server.crt就是最后需要的证书。

2、Nginx配置https

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  myformat  '$remote_addr - $remote_user [$time_local] "$request" ';
    access_log  logs/my.log  myformat;
    sendfile        on;
    keepalive_timeout  65;

    upstream www.feixiang.com {
    	ip_hash;
	    server 192.168.101.10;
    }

    #把http的域名请求转成https
    server {
        listen       80;
        server_name  www.wf.com;
	    rewrite ^(.*)$ https://$host$1 permanent;
    }

    server {
        listen       443 ssl;
        server_name  wwww.wf.com;
	    #证书文件
	    ssl_certificate /usr/local/nginx/conf/server.crt;
	    #私钥文件
	    ssl_certificate_key /usr/local/nginx/conf/server.key;
	
        location / {
            proxy_pass http://www.feixiang.com;
	        proxy_set_header Host $host; 
	        proxy_set_header X-Real-IP $remote_addr; 
	        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
	        proxy_set_header X-Forwarded-Proto https; 
	        proxy_redirect off; 
        }
    }	
}

二、Nginx+keepalived实现高可用

keepalived就是利用VRRP协议实现的一种可保障集群高可用的工具。通过主机之间的优先等级以及心跳检测来及时切换主备机的工作状态,以提高集群的高可用性。

VRRP全称 Virtual Router Redundancy Protocol,即虚拟路由冗余协议。可以认为它是实现路由器高可用的容错协议,即将N台提供相同功能的路由器组成一个路由器组(Router Group),这个组里面有一个master和多个backup,但在外界看来就像一台一样,构成虚拟路由器,拥有一个虚拟IP(vip,也就是路由器所在局域网内其他机器的默认路由),占有这个IP的master实际负责ARP响应和转发IP数据包,组中的其它路由器作为备份的角色处于待命状态。master会发组播消息,当backup在超时时间内收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master,保证路由器的高可用。

1、安装keepalived

(a)tar -zxvf keepalived.tar.gz

(b)./configure --prefix=/mnt/keepalived --sysconf=/etc

主要作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包,可以查看有没有configure文件判断是否源代码包,如果是二进制的包,解压后直接就能使用。

--prefix指的是安装路径,不指定prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。

--with指的是安装本文件所依赖的库文件。

--sysconf指定配置文件安装路径

(c)make && make install

编译安装

(d)cd /mnt/keepalived-2.0.10

ln -s /mnt/keepalived/sbin/keepalived /sbin

建立软链接

(e)添加系统服务

cp /mnt/keepalived-2.0.10/keepalived/etc/init.d/keepalived /etc/init.d/

chkconfig --add keepalived

chkconfig keepalived on

添加系统服务,设置开机启动

systemctl start keepalived

systemctl restart keepalived

启动系统服务

systemctl stop keepalived

停止系统服务

systemctl status keepalived

查看服务状态

(f)配置输出日志

将keepalived日志输出到local0

vim /etc/sysconfig/keepalived

KEEPALIVED_OPTIONS="-D -d -S 0"

在/etc/rsyslog.conf里添加

vim /etc/rsyslog.conf

local0.*  /var/log/keepalived.log

重新启动keepalived和rsyslog服务

service rsyslog restart

systemctl restart keepalived

2、keepalived配置

主备keepalived使用相同的虚拟ip(192.168.101.10),主keepalived的实际ip地址为192.168.101.100,备份keepalived的实际ip地址为192.168.101.101。主备keepalived的配置文件/etc/keepalived/ keepalived.conf分别如下:

global_defs {
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    #监测网卡的端口(ifconfig查看,默认是eth0)
    interface eth0
    #虚拟路由的标志,主从(MASTER、BACKUP)要一致
    virtual_router_id 51
    #优先级,值越大优先级越高(主keepalived优先级50,备份keepalived优先级100)
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #虚拟IP地址,需要自行配置
    virtual_ipaddress {
        192.168.101.10
    }
}

virtual_server 192.168.101.10 80 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.11.100 80 {
        weight 1
	#TCP检查
	TCP_CHECK {
	    connect_timeout 3
	    delay_before_retry 3
	    connect_port 80
	}
    }
}

主keepalived配置

global_defs {
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state BACKUP
    #监测网卡的端口(ifconfig查看,默认是eth0)
    interface eth0
    #虚拟路由的标志,主从(MASTER、BACKUP)要一致
    virtual_router_id 51
    #优先级,值越大优先级越高(主keepalived优先级50,备份keepalived优先级100)
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #虚拟IP地址,需要自行配置
    virtual_ipaddress {
        192.168.101.10
    }
}

virtual_server 192.168.101.10 80 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.201.100 80 {
        weight 1
	#TCP检查
	TCP_CHECK {
	    connect_timeout 3
	    delay_before_retry 3
	    connect_port 80
	}
    }
}

备份keepalived配置

KEBA机器人控制器简介全文共12页,当前为第1页。KEBA机器人控制器简介全文共12页,当前为第1页。KEBA机器人控制器简介 KEBA机器人控制器简介全文共12页,当前为第1页。 KEBA机器人控制器简介全文共12页,当前为第1页。    KEBA (中文名:科控)是一家提供自动控制产品和服务的公司,总部在奥地利(和贝加莱是老乡)。KEBA 成立于1968年,在中国设有分公司,其员工总数不到1000人,2015年营业收入达到1.89亿欧元。公司不大,产品却不俗,在工业、银行、能源等很多行业都有应用。   看到工业机器人市场这块蛋糕,KEBA 也推出了面向机器人自动化应用的产品 —— KeMotion[ 1 ] ^{[1]}[1],号称是机器人与机械设备自动化的全套解决方案 。其实,KeMotion 就是一个机器人控制系统。KeMotion在中国应用非常广泛,很多机器人厂商均有使用KEBA的控制器,例如埃夫特、埃斯顿等,其它不太知名的小厂家就更多了。即便如此有名,笔者想在公网上找一些KEBA控制器的资料却几乎找不到,看来工业机器人控制这个小圈子太封闭了,笔者试图搅动这潭死水。让人意外的一点是, KEBA 虽然研发机器人控制器,但自己却并不制造机器人,这是否说明本体的利润远远比不上控制器呢?而且像控制器这样的核心被抓在别人手里,机器人厂家想必也是不甘心吧。   本文我们就来看看KEBA的控制器有什么特色。KeMotion 既然是一个系统,它就包含一系列的软件、硬件、标准、语言等等,我总结了一下,如下表所示:  KeSystems  KeStudio  KeControl  KAIRO  KeTop  KAIROEdit  KeConnect  TeachView  KeDrive  TeachEdit  KeSafe  ViewEdit  KeView  TeachTalk   看着一大堆没见过的英文,不知道国内英语不好的同志怎么想,反正我是是想死的心都有了。KEBA 的工程师为了把用户搞晕也是做出了不懈的努力,下面我逐个介绍。首先是看得见摸得着的硬件部分: KEBA机器人控制器简介全文共12页,当前为第2页。KEBA机器人控制器简介全文共12页,当前为第2页。控制器 KeControl KEBA机器人控制器简介全文共12页,当前为第2页。 KEBA机器人控制器简介全文共12页,当前为第2页。   KeControl 是控制器,更准确的说是控制器的 CPU 模块,有CP、DU等几种型号。下图中我手里拿着的型号是 CP263/X(左图),它比 A4 纸瘦长一点,从正面看外表由一段段塑料片组成。你可以把 KeControl 看成是一个功能齐全的小电脑(PC —— Personal Computer),它内部有中央处理器、内存和硬盘(由CF卡充当),而且运行着 VxWorks 操作系统。KeControl 虽然是一个 PC,但是却采用了 PLC 的术语,把(我手中的)整个盒子称为 " CPU 模块"。 KEBA机器人控制器简介全文共12页,当前为第3页。KEBA机器人控制器简介全文共12页,当前为第3页。 KEBA机器人控制器简介全文共12页,当前为第3页。 KEBA机器人控制器简介全文共12页,当前为第3页。    我们可以和贝加莱的机器人控制器产品 Automation PC 比较一下,如下图所示的 PC 2100 型号。贝加莱 控制器更小巧,而且外观采用了醒目的橘黄色。 KEBA机器人控制器简介全文共12页,当前为第4页。KEBA机器人控制器简介全文共12页,当前为第4页。  KEBA机器人控制器简介全文共12页,当前为第5页。KEBA机器人控制器简介全文共12页,当前为第5页。 KEBA机器人控制器简介全文共12页,当前为第4页。 KEBA机器人控制器简介全文共12页,当前为第4页。 KEBA机器人控制器简介全文共12页,当前为第5页。 KEBA机器人控制器简介全文共12页,当前为第5页。    固高是我们国家有代表性的机器人控制器生产商,下图是其 GUC 系列。我们国家的工业设计和国外比还是逊色不少啊! KEBA机器人控制器简介全文共12页,当前为第6页。KEBA机器人控制器简介全文共12页,当前为第6页。   CPU 模块可以说是整个 KeMotion 系统的核心了,所有的控制程序都在它上面运行。这么重要的 CPU 模块到底采用了什么样的中央处理器呢?我展示的这款采用了 1.6 GHz 的 Intel ATOM,并搭配 1 GB DDR3 内存,这配置可能还比不上你的家用电脑(价格却可能贵几倍,要万把块钱。这额外的钞票是为可靠性付出的代价。你能想象机器人工作时突然因为控制器死机而歇菜或者失控吗?这给工厂带来的损失可不是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值