6月12日任务

12.17 Nginx负载均衡
12.18 ssl原理
12.19 生成ssl密钥对
12.20 Nginx配置ssl
扩展 
针对请求的uri来代理 http://ask.apelearn.com/question/1049
根据访问的目录来区分后端的web http://ask.apelearn.com/question/920
nginx长连接 http://www.apelearn.com/bbs/thread-6545-1-1.html
nginx算法分析 http://blog.sina.com.cn/s/blog_72995dcc01016msi.html

12.17 Nginx负载均衡

通过学习了Nginx代理,那么当只有一台机器的时候可以说是代理,如果有多台机器的时候,那就不能够单靠代理了,需要设置负载均衡。

比如有5个用户访问web服务器,如果其中一个服务器挂了,那么用户1不会再去请求web服务器1,而是自动分配其他的web服务器提供服务,这样就叫负载均衡。

操作步骤:

在正式操作之前可以使用dig命令解析网站域名对应的IP地址,如果没有安装,需要先使用 yum install -y bind-utils 安装dig命令。

设置负载均衡操作步骤:

1、新建ld.conf配置文件

[root@jimmylinux- vhost]# vim ld.conf

加入以下内容

upstream qq
{
ip_hash;
server 180.163.26.39:;
server 58.60.9.21:;
server 59.37.96.63:;
}
server
{
listen ;
server_name www.qq.com;
location /
{
proxy_pass http://qq;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

2、直接使用curl访问测试

重新-s加载配置文件,然后在curl访问www.qq.com就可以访问到真正的QQ主页了

[root@jimmylinux- vhost]# /usr/local/nginx/sbin/nginx -s reload

[root@jimmylinux- vhost]# curl -x127.0.0.: www.qq.com

以上操作就是Nginx的负载均衡,另外一个知识点:Nginx代理或负载均衡不支持去代理HTTPS,也就是server后面端口不可以写成443。

12.18 ssl原理

12.19 生成ssl密钥对

1、进入指定目录并生成私钥文件

[root@jimmylinux- ~]# cd /usr/local/nginx/conf
[root@jimmylinux- conf]# openssl genrsa -des3 -out tmp.key
Generating RSA private key, bit long modulus
..............................................+++
...............................+++
e is (0x10001)
Enter pass phrase for tmp.key: 输入密码abcd1234
Verifying - Enter pass phrase for tmp.key: 再次确认密码

2、转换key,取消密码。

[root@jimmylinux- conf]# openssl rsa -in tmp.key -out jimmy.key
Enter pass phrase for tmp.key:
writing RSA key

3、删除tmp.key文件

[root@jimmylinux- conf]# rm -f tmp.key

4、生成证书请求文件,目的是为了和私钥一起生成公钥文件。

[root@jimmylinux- conf]# openssl req -new -key jimmy.key -out jimmy.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name ( letter code) [XX]:China
string is too long, it needs to be less than bytes long
Country Name ( letter code) [XX]:CN
State or Province Name (full name) []:ShenZhen
Locality Name (eg, city) [Default City]:ShenZhen
Organization Name (eg, company) [Default Company Ltd]:jimmy
Organizational Unit Name (eg, section) []:jimmy
Common Name (eg, your name or your server's hostname) []:jimmylinux
Email Address []:joan2008.lms@gmail.com Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:abcd1234
An optional company name []:jimmy

5、用生成的证书请求文件jimmy.csr和之前的jimmy.key私钥文件一起生成公钥文件

[root@jimmylinux- conf]# openssl x509 -req -days  -in jimmy.csr -signkey jimmy.key -out jimmy.crt

这里的jimmy.key是私钥文件,jimmy.crt是公钥文件。

12.20 Nginx配置ssl

已经有公钥和私钥,那么就可以配置Nginx的SSL了。

1、进入指定目录、然后新建一个配置文件。

[root@jimmylinux- vhost]# vim ssl.conf    新建配置文件

添加以下内容

server
{
listen ; 监听端口
server_name jimmy.com;
index index.html index.php;
root /data/wwwroot/jimmy.com;
ssl on; 开启SSL支持HTTPS
ssl_certificate jimmy.crt; 指定公钥
ssl_certificate_key jimmy.key; 指定私钥
ssl_protocols TLSv1 TLSv1. TLSv1.; SSL协议
}

2、-t检查配置文件的语法是否正确,如果出现以下报错,因为最早编辑Nginx的时候并没有指定支持SSL,这里需要重新编译nginx,加上--with-http_ssl_module

重新配置完以后,执行make和make install

[root@jimmylinux- nginx-1.12.]# make

[root@jimmylinux- nginx-1.12.]# make install

3、刚才编译完以后就会多一个支持HTTPS的SSL,重新-t检查配置文件语法也没有问题了。

重启Nginx并检查监听端口

[root@jimmylinux- nginx-1.12.]# /etc/init.d/nginx restart  重启Nginx
Restarting nginx (via systemctl): [ 确定 ]
[root@jimmylinux- nginx-1.12.]# netstat -lntp 检查监听端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /nginx: master
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 4020/nginx: master 多一个443的端口
tcp 127.0.0.1: 0.0.0.0:* LISTEN /php-fpm: maste
tcp6 ::: :::* LISTEN /sshd
tcp6 ::: :::* LISTEN /master
tcp6 ::: :::* LISTEN /mysqld

4、进入指定目录,然后创建一个测试文件。

[root@jimmylinux- nginx-1.12.]# cd /data/wwwroot/jimmy.com/

[root@jimmylinux- jimmy.com]# ls

[root@jimmylinux- jimmy.com]# vim .txt  新建测试文件

添加以下内容
This is SSL test page. [root@jimmylinux- jimmy.com]# mv .txt index.html 重新更名成index.html文件

5、测试访问

[root@jimmylinux- jimmy.com]# curl -x127.0.0.: https://jimmy.com/  如果直接使用curl方式访问,就会报400的错误状态码。
curl: () Received HTTP code from proxy after CONNECT

需要修改hosts文件,然后再访问才可以。

可以编辑Windows的hosts文件,通过浏览器访问。

如果浏览器打开很慢无法访问,那么就要检查下防火墙了。

[root@jimmylinux- jimmy.com]# iptables -nvL  检查如果有防火墙

[root@jimmylinux- jimmy.com]# iptables -F    可以直接-F

刷新浏览器就可以访问了,如果不被浏览器认可的证书或者不合法的证书,https都会出现红色的显示。

想要有合法认可颁发的证书,可以到这个网站进行购买。

 

Nginx负载均衡、SSL原理、生成SSL密钥对、Nginx配置SSL的更多相关文章

  1. Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)

    Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...

  2. Nginx负载均衡+监控状态检测

    Nginx负载均衡+监控状态检测 想用Nginx或者Tengine替代LVS,即能做七层的负载均衡,又能做监控状态检测,一旦发现后面的realserver挂了就自动剔除,恢复后自动加入服务池里,可以用 ...

  3. 浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)

    1.概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程.下面我将依靠自己的经验,总结一下整个过程.如有错漏,欢迎指正. ...

  4. 【转】浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)

    1.概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程.下面我将依靠自己的经验,总结一下整个过程.如有错漏,欢迎指正. ...

  5. nginx 负载均衡,多站点共享Session

    原文:nginx 负载均衡,多站点共享Session nginx 负载均衡,多站点共享Session 多站点共享Session常见的作法有: 使用.net自动的状态服务(Asp.net State S ...

  6. 企业级Nginx负载均衡与keepalived高可用实战(二)keepalived篇

    1.Keepalived高可用软件 1.1.Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实 ...

  7. 企业级Nginx负载均衡与keepalived高可用实战(一)Nginx篇

    1.集群简介 1.1.什么是集群 简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器. ...

  8. 【转贴】Linux系统NGINX负载均衡404错误处理方法

    NGINX负载均衡404错误处理方法 使用NGINX 实现负载均衡,但一组服务器的数据不是实施同步,主服务器有了数据要过段时间才同步到其他服务器 upstream   image.stream.com ...

  9. 面试题:Nginx负载均衡的算法怎么实现的?为什么要做动静分离?

    面试题 Nginx负载均衡的算法怎么实现的?Nginx 有哪些负载均衡策略?Nginx为什么要做动静分离? 面试官心理剖析 主要是看应聘人员对Nginx的基本原理是否熟悉,需要应聘人员能够根据实际业务 ...

  10. Nginx负载均衡策略的介绍与调优

    工作中经常会用到nginx负载均衡这一块,下面对nginx负载均衡策略做个总结.本人在工作中最常用到的负载均衡策略是轮询策略. 在一般情况下,Web中间件最大的作用就是负责对请求进行分发,也就是我们常 ...

随机推荐

  1. RESTful基本概念

    文章目录 01 前言 02 RESTful的来源 03 RESTful6大原则 1. C-S架构 2. 无状态 3.统一的接口 4.一致的数据格式 4.系统分层 5.可缓存 6.按需编码.可定制代码( ...

  2. 高可用架构的实现--dubbo+zookeeper+maven+tomcat

    最近在做分布式的服务架构搭建,因为自己确实很喜欢搞这种技术类的研究,所以在公司需要的时候主动承担了这项光荣而艰巨的任务.公司搭建的架构主要目的是需要支持后端接口的多用户的高并发访问,希望能够达到每秒并 ...

  3. 智和网管平台SugarNMS助力网络安全运维等保2.0建设

    智和信通智和网管平台SugarNMS结合<信息安全技术 网络安全等级保护基本要求>(GB/T 22239-2019)等国家标准文件以及用户提出的网络安全管理需求进行产品设计,推出“监控+展 ...

  4. vue2-preview引用时报错解决办法

    1.报错信息 在完全按照官方文档安装引入vue2-preview时出现报错,报错信息如下: 从图中标记处可以知道出错是因为在\node_modules\_vue2-preview@1.0.2@vue2 ...

  5. 揭秘——TCP的三次握手和四次挥手

    1.前言 本文以博主在某次前端面试中被问到"什么是TCP协议中的三次握手和四次挥手?"为契机,经过整理教材.百度百科以及他人博客,再结合博主自身的理解,尽可能的以通俗易懂的语言来解 ...

  6. windows下同时装了Python3和Python2,如何区分使用?

    1.前言 想学习Python3,但是暂时又离不开Python2.在Windows上如何让它们共存呢? 目前国内网站经常会让大家把其中一个python.exe改个名字,这样区分开两个可执行文件的名字,但 ...

  7. 一文教您如何通过 Java 压缩文件,打包一个 tar.gz Filebeat 采集器包

    欢迎关注笔者的公众号: 小哈学Java, 专注于推送 Java 领域优质干货文章!! 个人网站: https://www.exception.site/essay/create-tar-gz-by-j ...

  8. MySQL系列:Windows 下 MySQL 8.X 的安装

    之前一直使用的是MySQL5.7,但由于MySQL增加了一些新特性,所以选择了更新. 下载MySQL 进入MySQL官网下载地址,选择Windows (x86, 64-bit), ZIP Archiv ...

  9. access,trunk,hybrid端口分析

    1.access 接收:当数据没有tag时打上pvidtag进入,若有则看是否与pvid相等,相等则接收,不想等则丢弃. 转发:看tag是否等于pvid,若等则去tag发送,否则不处理. 2.trun ...

  10. X-Admin&ABP框架开发-RBAC

    在业务系统需求规划过程中,通常对于诸如组织机构.用户和角色等这种基础功能,通常是将这部分功能规划到通用子域中,这也说明了,对于这部分功能来讲,是系统的基石,整个业务体系是建立于这部分基石之上的,当然, ...