一、Nginx负载均衡 #dig //dig命令其实就是解析 bash: dig: command not found #yum install -y bind-utils #dig qq.com //解析qq.com,可以看到qq.com解析到了3个IP上,可以使用这3个IP去做负载均衡 #cd /usr/local/nginx/conf/vhost/ #vi ld.conf #/usr/local/nginx/sbin/nginx -t #/usr/local/nginx/sbin/nginx -s reload #curl -x127.0.0.1:80 www.qq.com //访问qq.com会返回qq.com主页的网页源码,这就是负载均衡 知识点:Nginx不支持代理https,如果有一台web服务器是通过https访问的,它只支持通过80端口访问,不支持访问它的443端口 二、ssl原理 crt private是私钥,用来进行解密的;crt public是公钥,用来进行加密的 三、生成ssl密钥对 #cd /usr/local/nginx/conf #rpm -qf which openssl //查看某个命令需要安装哪个包,这里需要先安装openssl这个命令 #openssl genrsa -des3 -out tmp.key 2048 //生成rsa格式的私钥,长度2048 #openssl rsa -in tmp.key -out aminglinux.key //-in指定哪一个密钥要被转换,-out指定输出的,tmp.key和aminglinux.key其实是密钥,tmp.key是有密码的,aminglinux是没有密码的 #rm -f tmp.key //这时候可以删除有密码的tmp.key这个密钥了 #openssl req -new -key aminglinux.key -out aminglinux.csr //生成证书请求文件,需要拿这个文件和私钥一起生产公钥文件 上图的这些内容可以自定义 #openssl x509 -req -days 365 -in aminglinux.csr -signkey aminglinux.key -out aminglinux.crt //-days 365表示证书日期是一年 Signature ok subject=/C=11/ST=BeiJing/L=BeiJing/O=aming/OU=aming/CN=aminglinux/emailAddress=aming@aminglinux.com Getting Private key #ls aminglinux. //使用tab键 aminglinux.crt aminglinux.csr aminglinux.key //这里的.crt为公钥,.key为私钥 四、Nginx配置ssl #cd /usr/local/nginx/conf/vhost/ #mkdir /data/wwwroot/aming.com //创建一个aming.com文件夹,在下面配置文件的root中使用 #vim ssl.conf //生成新的配置文件ssl.conf文件 #/usr/local/nginx/sbin/nginx -t //报错,不能识别ssl,需要重新编译nginx nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/vhost/ssl.conf:7 nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed #cd /usr/local/src/nginx-1.14.0/ #/usr/local/nginx/sbin/nginx -V //查看支持哪些 nginx version: nginx/1.14.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) configure arguments: --prefix=/usr/local/nginx #./configure --help |grep -i ssl //查看需要增加ssl的哪个配置,需要增加--with-http_ssl_module -with-http_ssl_module enable ngx_http_ssl_module -with-mail_ssl_module enable ngx_mail_ssl_module -with-stream_ssl_module enable ngx_stream_ssl_module -with-stream_ssl_preread_module enable ngx_stream_ssl_preread_module -with-openssl=DIR set path to OpenSSL library sources -with-openssl-opt=OPTIONS set additional build options for OpenSSL #./configure --prefix=/usr/local/nginx --with-http_ssl_module
#make #make install #/usr/local/nginx/sbin/nginx -V //再次查看,多了--with-http_ssl_module nginx version: nginx/1.14.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module #/usr/local/nginx/sbin/nginx -t //检查语法 #/etc/init.d/nginx restart //重启nginx #cd /data/wwwroot/aming.com/ #vim index.html //创建测试文件 This is ssl. #vi /etc/hosts
#curl https://aming.com/ //提示证书不安全,原因是我们自己生成的 如果需要购买证书,可以到沃通官网:https://www.wosign.com/去购买