Loang loang以前,前后端分离后,这个项目一直采用http,计划配置Https。过了这么久,前阵子终于写完了,这里简单记录一下。
开放Https是一种数字证书,由可信的数字证书颁发机构颁发。服务器配置SSL后,其访问具有认证和数据传输加密功能。
2.2、SSL证书如何获取有许多方法可以获得SSl证书。下面是腾讯云免费申请的SSL证书。
附上相关信息:
应用程序链接
证书有几种(以我的申请为例):
以Nginx为例。配置Https需要文件夹中有以下文件:
借用网上的一段话:
Nginx是一个轻量级的Web服务器/反向代理服务器和电子邮件(IMAP/POP3)代理服务器,它是在类似BSD的协议下发布的。
它的特点是内存少,并发性强。其实nginx的并发性在同类型的web服务器中是比较好的。
3.2、下载Nginx
在Nginx官网可以下载需要的版本,然后解压到服务器(Linux使用命令处理)。
3.3、配置NginxNginx的主要配置集中在它的配置文件里,下面附上我的相关配置,每行都有对其功能的描述:
##########每个指令都必须以分号结束。# # # # # # # # # # # # # #
#配置用户或组,默认为nobody nobody。
#用户nobody
#允许生成的进程数与cpu核心数相同(默认为1)
worker _ processes 2;
#错误日志关联,
#开发日志路径和级别。此设置可以放入全局块、http块、服务器块、
#级别如下:debug | info | notice | warn | error | crit | alert | emerg
# error _ loglogs/error . log;
#error_log日志/error.log通知;
#error_log日志/error.log信息;
#指定nginx进程运行文件的存储地址
# PID logs/nginx . PID;
events {
#最大连接数,默认为512
worker _ connections 1024;
}
http {
#文件扩展名和文件类型映射表
include ame . types;
#默认文件类型,默认为text/plain
Default _ type application/octet-stream;
# access _ log off;#取消服务日志
#自定义格式
# log _ format main & # 39;$ remote _ addr-$ remote _ user[$ time _ local]& # 34;$ request & # 34'
# & # 39;$ status $ body _ bytes _ sent & # 34$ http _ referer & # 34'
# & # 39;"$ http _ user _ agent & # 34"$ http _ x _ forwarded _ for & # 34';
# combined是日志格式的默认值
# access _ logloglogs/access . logmain;
# sendfile模式允许传输文件,默认关闭,可用于http块、服务器块和位置块。
在上发送文件;
#连接超时,默认为75s,可以在http、server和location块中找到。
keepalive _ time out 65;
#打开缓存配置
# proxy_cache_path缓存文件路径
# levels设置缓存文件目录层次结构;Levels=1:2表示二级目录
# keys_zone设置缓存名称和共享内存大小
# inactive将被删除
# max_size最大缓存空,如果缓存/
已满,
proxy _ cache _ path/XA/nginx/cache levels = 1:2 keys _ zone = x cache:20m max _ size = 50g inactive = 1d;
#打开gzip
gzip on;
#启用gzip压缩的最小文件。小于设定值的文件不会被压缩
gzip _ min _ length 1k;
# gzip压缩级别,1-9,数字越大压缩越好,占用的CPU时间也越多,后面会解释
gzip _ comp _ level 6;
#要压缩的文件类型。javascript有多种形式。的值可以在mime.types文件中找到。
gzip _ types text/plain application/JavaScript application/x-JavaScript text/CSS application/XML text/JavaScript application/x-httpd-PHP image/JPEG image/gif image/png application/vnd . ms-font object font/TTF font/opentype font/x-woff image/SVG+XML;
#是否在http头中添加Vary: Accept-Encoding,建议打开
gzip _ Vary on;
#禁用IE 6 gzip
gzip _ Disable & # 34;MSIE [1-6]。";
#设置压缩所需的缓冲区大小
gzip _ buffers 4 16k;
#设置gzip压缩所针对的HTTP协议版本
gzip _ HTTP _ version 1.0;
服务器{
#监听端口
监听80;
#监听地址
server _ name guangmuhua.com;
# Redirect
Return 301 https://$ server _ name $ request _ uri;
Location/{
#跨域访问
add _ header & # 39;访问控制允许来源& # 39;*;
#代理转发
proxy _ pass http://guangmuhua.com:8080;
}
#以/api/ Regular match开头的Match请求,~区分大小写,~ *不区分大小写。
location /api {
#允许跨域访问cro
add _ header & # 39;访问控制允许来源& # 39;*;
#代理转发
proxy _ pass https://guangmuhua.com:9001;
}
#缓存静态资源文件
位置~ *。+.(CSS | js | ico | gif | jpg | JPEG | png)$ {
log _ not _ found
# Close log
access _ log off;
#缓存时间为7天
过期7d;
#原服务器
proxy _ pass http://guangmuhua.com:8080;
#指定上面设置的缓存区域
proxy _ cache x cache;
#缓存过期管理
proxy _ cache _ valid 200 302 1d;
proxy _ cache _ valid 404 10m;
proxy_cache_valid任意1h;
proxy_cache_use_stale错误超时invalid_header更新http _ 500 http _ 502 http _ 503 http _ 504;
}
}
# HTTPS服务器
服务器{
#监听端口,打开HTTP2
监听443 ssl http2
#监听地址
server _ name guangmuhua.com;
# SSL官方和秘密密钥
SSL _ certificateguanmuhua . CRT;
SSL _ certificate _ key guangmuhua . key;
#存储会话参数的缓存大小和过期时间
SSL _ session _ Cache shared:SSL:1m;
SSL _ session _ time out 5m;
# SSL加密套件
ssl_ciphers高:!阿努尔:MD5
#服务器是否决定使用哪种加密算法
SSL _ prefere _ server _ ciphers;
Location/{
#跨域访问
add _ header & # 39;访问控制允许来源& # 39;*;
#代理转发
proxy _ pass http://guangmuhua.com:8080;
}
#匹配以/api
location /api开头的请求{
#允许cro跨域访问
add _ header & # 39;访问控制允许来源& # 39;*;
#代理转发
proxy _ pass https://guangmuhua.com:9001;
}
#缓存静态资源文件
位置~ *。+.(CSS | js | ico | gif | jpg | JPEG | png)$ {
log _ not _ found
# Close log
access _ log off;
#缓存时间为7天
过期7d;
#原服务器
proxy _ pass http://guangmuhua.com:8080;
#指定上面设置的缓存区域
proxy _ cache x cache;
#缓存过期管理
proxy _ cache _ valid 200 302 1d;
proxy _ cache _ valid 404 10m;
proxy_cache_valid任意1h;
proxy_cache_use_stale错误超时invalid_header更新http _ 500 http _ 502 http _ 503 http _ 504;
}
}
}
转到Niginx的根目录:
启动:启动nginx
停止:nginx -s停止