一、内容概览
1、nginx基本概念
- nginx是什么,介绍 nginx 的应用场景和具体可以做什么事情
- 介绍什么是反向代理
- 介绍什么是负载均衡
- 介绍什么是动静分离
2、nginx的安装、常用命令和配置文件
- 介绍 nginx 在 linux 系统中如何进行安装
- 介绍 nginx 启动、关闭、重新加载常用命令
- 介绍 nginx 的配置文件
3、nginx配置实例之反向代理
4、nginx配置实例之负载均衡
5、nginx配置实例之动静分离
6、nginx配置高可用集群
- 搭建 nginx 高可用集群(主从模式)
- 搭建 nginx 高可用集群(双主模式)
7、nginx 原理与优化参数配置
二、Nginx简介
1、Nginx的概念
Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能 力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
2、Nginx作为web服务器
Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高 达 50,000 个并发连接数。
3、正向代理
Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。 正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访 问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。
在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问
1 | 这个过程其实和租房子很像。 |
正向代理的用途:
1 | 突破访问限制 |
4、反向代理
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返 回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。
1 | 我们在租房子的过程中,除了有些房源需要通过中介以外,还有一些是可以直接通过房东来租的。用户直接找到房东租房的这种情况就是我们不使用代理直接访问国内的网站的情况。 |
所以,反向代理,其实是”代理服务器”代理了”目标服务器”,去和”客户端”进行交互。
通过反向代理服务器访问目标服务器时,客户端是不知道真正的目标服务器是谁的,甚至不知道自己访问的是一个代理。
反向代理的用途:
1 | 隐藏服务器真实IP |
正向代理和反向代理的区别:
1 | 虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。 |
5、负载均衡
1 | 客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。 |
6、动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速 度。降低原来单个服务器的压力。
三、Nginx安装
版本区别 常用版本分为四大阵营
Nginx开源版 http://nginx.org/
Nginx plus 商业版 https://www.nginx.com
openresty http://openresty.org/cn/
Tengine http://tengine.taobao.org/
1、进行Nginx官网,下载nginx
2、安装相关依赖
2.1、安装pcre
把安装包放到linux系统文件夹中
解压压缩文件
tar -zxvf pcre-8.45.tar.gz进行解压之后目录。执行./configure 命令
回到 pcre 目录下执行 make && make install命令
检验是否安装成功
2.2、安装openssl和 zlib依赖
执行命令进行下载安装包
2.3、安装nginx
把安装包放入linux系统文件夹中
解压nginx
进行解压文件夹,执行./configure命令
执行make && make install 命令
安装成功之后,在usr/local文件夹下多出一个nginx,在nginx中有sbin存放启动脚本
查看开放的端口号 :
firewall-cmd –list-all
设置开放的端口号 :
firewall-cmd –add-service=http –permanent
sudo firewall-cmd –add-port=80/tcp –permanent
重启防火墙:
firewall-cmd –reload
指定端口和ip访问:
firewall-cmd –permanent –add-rich-rule=”rule family=”ipv4” source address=”192.168.44.101” port protocol=”tcp” port=”8080” accept”
移除规则:
firewall-cmd –permanent –remove-rich-rule=”rule family=”ipv4” source address=”192.168.44.101” port port=”8080” protocol=”tcp” accept”
四、Nginx常用的命令和配置文件
1、nginx的常用命令
没配置环境变量时使用ngin操作命令的前提条件是:必须进入nginx的目录
/usr/local/nginx/sbin
1.1、查看nginx的版本号
./nginx -v
1.2、启动nginx
./nginx
1.3、关闭nginx
./nginx -s stop
1.4、重新加载nginx
./nginx -s reload
修改nginx.conf 可以重新加载不需要重启nginx服务
也可以配置全局环境变量
还可以编写脚本
vi /usr/lib/systemd/system/nginx.service
1 | [Unit] |
重新加载系统服务 systemctl daemon-reload
启动服务 systemctl start nginx.service
开机启动 systemctl enable nginx.service
2、nginx配置文件
2.1、配置文件的位置
nginx 安装目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件 nginx.conf 也在其中,后续对 nginx 的使用基本上都是对此配置文件进行相应的修改
2.2、nginx配置文件的组成部分
最小配置文件
1 | worker_processes 1; #工作进程数量,一般和cpu数量相同 |
1 | #user nobody; |
根据上述文件,我们可以很明显的将 nginx.conf 配置文件分为三部分:
第一部分:全局块
从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配 置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以 及配置文件的引入等。
比如上面第一行配置的:
1 | worker_processes 1; |
这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是 会受到硬件、软件等设备的制约
第二部分:events块
1 | events { |
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。
上述例子就表示每个 work process 支持的最大连接数为 1024. 这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。
第三部分:http块
1 | http { |
这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。 需要注意的是:http 块也可以包括 http 全局块、server 块。
①、http 全局块
http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等
②、server 块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了 节省互联网服务器硬件成本。
每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
1、全局 server 块 最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
2、location 块 一个 server 块可以配置多个 location 块。 这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称 (也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓 存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
从上往下进行匹配,先匹配先展示。
域名适用通配符和正则匹配
两个都匹配不上,默认访问第一个
多用户二级域名:
3、Nginx安装的目录文件
conf:存放配置文件,其中nginx.conf是主配置文件,里面引用了其他配置文件
html:存放了nginx服务访问默认的页面
logs:存放日志文件,access.log访问日志,error.log错误日志,nginx.pid记录主进程的id号
sbin:存放启动命令,启动文件
五、nginx配置实例之反向代理
1、反向代理实例一
实现效果:使用 nginx 反向代理,访问 www.123.com 直接跳转到 106.55.228.118:8080
1.1、实现步骤
在linux系统安装tomcat,使用默认端口8080
- tomcat安装文件放进linux系统中,解压
- 进入tomcat的bin目录中,执行./startuo.sh命令启动tomcat服务器
对外开放访问的端口(云服务器记得安全组,防火墙开放相应端口)
在windows系统中通过浏览器访问tomcat服务器
通过修改本地 host 文件,将 www.123.com 映射到 106.55.228.118
在 nginx.conf 配置文件中增加如下配置
启动nginx查看效果
如上配置,我们监听 80 端口,访问域名为 www.123.com,不加端口号时默认为 80 端口,故 访问该域名时会跳转到 106.55.228.118:8080 路径上
注意:云服务器访问可能会显示要求备案域名
2、反向代理实例二
实现效果:使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中 nginx 监听端口为 9001, 访问 http://106.55.228.118:9001/edu/ 直接跳转到 106.55.228.118:8081访问 http://106.55.228.118:9001/vod/ 直接跳转到 106.55.228.118:8082
2.1、实现步骤
准备两个tomcat服务器,一个8081端口,一个8082端口
准备一些文件夹和测试页面
在tomcat8081下的tomcat中的webapps文件夹中新建edu,存放a.html
在tomcat8082下的tomcat中的webapps文件夹中新建vod,存放b.html
打开nginx配置文件,进行反向代理配置
记得开放端口和安全组
重新加载nginx
测试
location 指令说明 该指令用于匹配 URL。 语法如下:
1
2
3
4
5
61、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
六、nginx配置实例之负载均衡
实现效果:浏览器地址栏输入http://106.55.228.118/test/c.html,负载均衡效果,平均到8081和8082端口中。
1、实现步骤
1.1、准备工作
准备两台tomcat服务器,一台8081,一台8082
在两台tomcat里面webapps目录下创建edu文件夹,在test文件中创建页面c.html,用于测试
在nginx配置文件中配置负载均衡
测试,打开网址,每次都会更换端口,实现均匀效果,负载均衡!
随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题, 顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品, 很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎, nginx 就是其中的一个,在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服 务,而且 Nginx 提供了几种分配方式(策略):
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
2、weight
weight 代表权,重默认为 1,权重越高被分配的客户端越多 指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。 例如
1 | upstream server_pool{ |
3、ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。 例如:
1 | upstream server_pool{ |
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。会造成流量倾斜
1 | upstream server_pool{ |
5、down
被标记服务器无法使用
6、backup
备用机,如果其他机器正常,则不使用当前服务器,除非其他机器故障
7、least_conn 最少连接访问
8、url_hash 根据用户访问的url定向转发请求(适用于固定资源,不在同一服务器)
七、nginx配置实例之动静分离
1 | Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大致分为两种,一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。 |
1、实现步骤
在linux系统中准备静态资源,用于访问
在nginx配置文件中进行配置
重启nginx
测试效果
浏览器输入地址http://106.55.228.118/image/lsh.jpg
因为配置文件 autoindex on 列出当前文件夹内容
浏览器输入地址http://106.55.228.118/html/a.html
2、动静分离例子二
首先准备两台服务器,192.168.131.101和192.168.131.103,给其中一台服务03那台配置tomcat
在tomcat的webapps文件中的root目录下,准备index.html页面,和一些css、js、img资源
启动tomcat,在服务器192.168.131.103:8080下能正常访问到
在01服务器上配置nginx配置文件如下,也能正常反向代理
删除03服务器tomcat的webapps中root目录下的静态资源,不能正常访问
将静态资源传输到01服务器nginx安装目录中的html文件夹中
配置01服务器nginx.conf文件如下
或
这样配置后,如请求/img/wzry.jpg会直接到html/img中请求资源
能够正常访问
八、Nginx配置高可用集群
1 | 需要两台nginx服务器 |
1、配置高可用的准备工作
需要两台服务器
在两台服务器安装nginx
在两台服务器安装keepalived
yum install keepalived –y
安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf
完成高可用配置(主从配置)
修改keepalived.conf配置文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_form Alexandre.Cassen@firewall.loc
smtp_server 106.55.228.118
smtp_connect_timeout 30
router_id MASTER #标识本节点的名称,通常为hostname
}
## keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance的优先级。
##如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加。如果脚本执行结果非0,
##并且weight配置的值小于 0,则优先级相应的减少。其他情况,维持原本配置的优先级,即配置文件中priority对应的值。
vrrp_script chk_nginx {
script "/usr/local/src/nginx_check.sh"
interval 2 #每2秒检测一次nginx的运行状态
weight -20 #失败一次,将自己的优先级-20
}
vrrp_instance VI_1 {
state MASTER # 状态,主节点为MASTER,备份节点为BACKUP
interface eth0 # 绑定VIP的网络接口,通过ifconfig查看自己的网络接口,网卡名称
virtual_router_id 51 # 虚拟路由的ID号,两个节点设置必须一样,可选IP最后一段使用,相同的VRID为一个组,他将决定多播的MAC地址
priority 100 # 节点优先级,值范围0~254,MASTER要比BACKUP高
advert_int 1 # 组播信息发送时间间隔,两个节点必须设置一样,默认为1秒
# 设置验证信息,两个节点必须一致
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟IP,两个节点设置必须一样。可以设置多个,一行写一个
virtual_ipaddress {
106.55.228.50
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_form Alexandre.Cassen@firewall.loc
smtp_server 120.79.54.181
smtp_connect_timeout 30
router_id BACKUP #标识本节点的名称,通常为hostname
}
vrrp_script chk_nginx {
script "/usr/local/src/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
106.55.228.50
}
}在/usr/local/src/下新建脚本文件nginx_check.sh
1
2
3
4
5
6
7
8
9
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi把两台服务器上的nginx和keepalived启动
启动nginx: ./nginx
启动keepalived:systemctl start keepalived.service
最终测试
- 在浏览器输入地址输入虚拟ip测试
九、nginx原理与优化参数配置
master-workers 的机制的好处
首先,对于每个 worker 进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销, 同时在编程以及问题查找时,也会方便很多。其次,采用独立的进程,可以让互相之间不会 影响,一个进程退出后,其它进程还在工作,服务不会中断,master 进程则很快启动新的 worker 进程。当然,worker 进程的异常退出,肯定是程序有 bug 了,异常退出,会导致当 前 worker 上的所有请求失败,不过不会影响到所有请求,所以降低了风险。
可以使用nginx -s reload 热部署
每个worker都是独立的进程,如果有其中的一个worker出现问题,其他worker独立的,继续进行争抢,实现请求过程,不会造成服务中断
需要设置多少个 worker
Nginx 同 redis 类似都采用了 io 多路复用机制,每个 worker 都是一个独立的进程,但每个进 程里只有一个主线程,通过异步非阻塞的方式来处理请求, 即使是千上万个请求也不在话 下。每个 worker 的线程可以把一个 cpu 的性能发挥到极致。所以 worker 数和服务器的 cpu 数相等是最为适宜的。设少了会浪费 cpu,设多了会造成 cpu 频繁切换上下文带来的损耗。
#设置 worker 数量。
worker_processes 4
#work 绑定 cpu(4 work 绑定 4cpu)。
worker_cpu_affinity 0001 0010 0100 1000
#work 绑定 cpu (4 work 绑定 8cpu 中的 4 个) 。
worker_cpu_affinity 0000001 00000010 00000100 00001000
连接数 worker_connection
1 | 1、发送一个请求,占用了worker的几个连接数? |
这个值是表示每个 worker 进程所能建立连接的最大值,所以,一个 nginx 能建立的最大连接 数,应该是 worker_connections * worker_processes。当然,这里说的是最大连接数,对于 HTTP 请 求 本 地 资 源 来 说 , 能 够 支 持 的 最 大 并 发 数 量 是 worker_connections * worker_processes,如果是支持 http1.1 的浏览器每次访问要占两个连接,所以普通的静态访 问最大并发数是: worker_connections * worker_processes /2,而如果是 HTTP 作 为反向代 理来说,最大并发数量应该是 worker_connections * worker_processes/4。因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服 务的连接,会占用两个连接。
十、负载均衡和URLRewrite
1、网关
给104服务器开启防火墙,但单独设置101服务器能够访问特定的端口,能够使101能正常访问,但104无法被访问。
配置网关:
访问http://192.168.131.101/library:
访问http://192.168.131.101/library/5.html:
静态资源位置:
十一、设置防盗链
1、配置防盗链
防盗链配置:
1 | valid_referers none | blocked | server_names | strings ....; |
- none, 检测 Referer 头域不存在的情况。
- blocked,检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。这种情况该头域的值不以 “http://” 或 “https://” 开头。
- server_names ,设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一个。
在需要防盗链的location中配置:
1 | valid_referers 192.168.131.101; |
不加none,单独访问和页面访问都不可以
加了none单独访问图片没问题,网页引用访问不行
2、使用CURL测试防盗链
安装curl
yum install -y curl
测试
curl 网址:直接返回页面源码
curl -I 网址 :返回页面请求头
curl -e referer网址 -I 网址 :返回页面请求头。判断referer网址是否能正常访问该网址
3、返回错误码和返回错误页面
创建错误提示页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Error</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>An error occurred.</h1>
<p>非法请求!</p>
<p>你没有权限使用我的资源!!!</p>
<p><em>Faithfully yours, nginx.</em></p>
</body>
</html>配置nginx.conf
测试结果
上面是return错误码的形式,也可以直接return对应的html页面位置(不知道可不可行)
4、配置防盗链提醒图片
将图片放在01服务器上nginx安装目录的html中的img文件夹中
配置nginx.conf如下:
reload 一下nginx
测试效果如下:
十二、高可用配置
1、安装keepalived
①编译安装
下载地址:
1 | https://www.keepalived.org/download.html# |
如遇报错提示:
1 | configure: error: |
安装依赖解决:
1 | yum install openssl-devel |
②yum安装
1 | yum install -y keepalived |
配置:
使用yum安装后配置文件在 /etc/keepalived/keepalived.conf
十三、Https证书配置
1、对称加密算法:
2、不对称加密算法:
1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
4.A将这个消息发给B(已经用B的公钥加密消息)。
5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。
其实可以这样理解:
1 | 客户端和服务端都有很多锁(公钥)和钥匙(私钥) |
数字签名:
1 | 但是以上加密算法还是有一定的安全风险。客户端/服务器端并不确定这个信息是谁的,而且不知道这个信有没有在传输过程中被修改过 |
这就是数字签名。
存在的安全问题:
1 | 客户端想请求服务器端获取公钥,但是被中间危险分子拦截,中间危险分子替你向服务器请求,但是给客户端下发一个假的公钥,客户端使用假的公钥进行加密后传输数据,就能够被中间危险分子使用私钥进行解密破解拦截了。 |
解决方案:数字证书
数字证书是由证书签证机关(CA)签发的对用户的公钥的认证。通俗地讲,数字证书就是个人或单位在Internet的身份证。数字证书主要包括三方面的内容:证书所有者的信息、证书所有者的公钥和证书颁发机构的签名。
那么如何对我们的公钥进行认证呢?向一个证书发布机构CA申请证书,我们需要将证书的信息告诉给CA,CA就会将这些信息写到证书中去,然后使用自己的私钥对证书进行加密,这样我们就可以将这种证书投入使用,当将这个证书发生给对方之后,对方会在自己操作系统中受信任的发布机构的证书中去找CA的证书,如果找不到,那说明证书可能有问题,程序会给出一个错误信息。如果在系统中找到了CA的证书,那么应用程序就会从证书中取出CA的公钥,这样使用这个公钥就可以对接收到的数字证书进行解密,解密之后就可以拿到我们自己的公钥信息。
3、证书自签名
openssl
openssl包含:SSL协议库、应用程序以及密码算法库
自签名
OpenSSL
系统内置
图形化工具 XCA
下载地址 https://www.hohnstaedt.de/xca/index.php/download
十四、在线证书申请
申请后将文件下载下来(包括公钥和证书),将文件传到服务器上。默认在nginx的安装目录中的conf文件夹中查找
证书安装:
1 | server{ |
在nginx.conf中配置以上服务即可
十五、安装Discuz
下载地址:
Disucz! 下载_免费搭建网站_开源建站系统下载_Discuz开源建站系统_为您提供全方位建站服务!
传上服务器,解压缩,改名为bbs
访问http://120.79.54.181/bbs/install/
1 | server{ |
http协议跳转https
1 | server { |
进行安装:
注意权限问题!