前端如何做双语网站,建设银行官网首页网站公告,一般的学校网站怎么做,app数据分析软件压缩功能
简介
Nginx⽀持对指定类型的⽂件进行压缩然后再传输给客户端#xff0c;而且压缩还可以设置压缩比例#xff0c;压缩后的文件大小将比源文件显著变小#xff0c;这样有助于降低出口带宽的利用率#xff0c;降低企业的IT支出#xff0c;不过会占用相应的CPU资源…压缩功能
简介
Nginx⽀持对指定类型的⽂件进行压缩然后再传输给客户端而且压缩还可以设置压缩比例压缩后的文件大小将比源文件显著变小这样有助于降低出口带宽的利用率降低企业的IT支出不过会占用相应的CPU资源。
Nginx对文件的压缩功能是依赖于模块ngx_http_gzip_module官方文档https://nginx.org/en/cdocs/http/ngx_http_gzip_module.html 配置指令如下
参数 gzip on | off; 启用或禁用gzip压缩默认关闭 gzip_comp_level level; 压缩比由低到高从1到9默认为1 gzip_disable MSIE [1-6]\.; 禁⽤用IE6 gzip功能 gzip_min_length 1k; gzip压缩的最小文件小于设置值的文件将不会压缩 gzip_http_version 1.0 | 1.1; 启用压缩功能时协议的最小版本默认HTTP/1.1 gzip_buffers number size; 指定Nginx服务需要向服务器申请的缓存空间的个数*大小默认32 4k|16 8k; gzip_types mime-type ...; 指明仅对哪些类型的资源执行压缩操作默认为gzip_types text/html不用显示指定否则出错 text/plain application/javascript application/x-javascript text/cssapplication/xml text/javascript application/x-httpd-php image/jped image/gif image/png; gzip_vary on | off如果启用压缩是否在响应报文首部插⼊入“Vary: Accept-Encoding” 测试 gzip on;gzip_comp_level 3;gzip_min_length 1k;gzip_types text/plain application/javascript application/x-javascript text/cssapplication/xml text/javascript application/x-httpd-php image/jped image/gif image/pn;gzip_vary on;
https功能
简介 Web网站的登录页面都是使用https加密传输的加密数据以保障数据的安全HTTPS能够加密信息以免敏感信息被第三方获取所以很多银行网站或电子邮箱等安全级别较高的服务都会采用HTTPS协议HTTPS其实是有两部分组成HTTP SSL / TLS也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密所以传输的数据都是加密后的数据。 图解 实现过程
客户端发起HTTPS请求。当客户端如浏览器访问使用HTTPS协议的网站时它会建立到服务器443端口的连接HTTPS的默认端口这通常是443端口。服务端返回携带公钥的HTTPS证书。服务器在接收到客户端的请求后会将其拥有的数字证书包含公钥传递给客户端这个证书是由数字证书颁发机构CA签发的并包含了证书颁发机构信息、公司信息和证书有效期等多种信息。客户端验证证书是否合法。客户端在收到服务器的证书后会对其进行验证以确保证书的有效性和真实性这包括检查证书的颁发机构、有效期以及证书中的域名是否与实际域名一致如果证书不是由可信的CA机构颁发或者存在其他问题客户端会向用户显示一个警告。客户端生成随机数并加密。如果证书验证成功客户端会生成一个随机数并使用服务器的公钥对这个随机数进行加密。服务端解密随机数并用其加密响应内容。服务器在收到客户端加密的随机数后使用其私钥来解密这个随机数然后服务器使用这个随机数作为对称加密算法的密钥对返回的数据内容进行加密并发送给客户端。客户端解密数据。客户端在收到服务器加密的数据后使用之前生成的随机数对称密钥来解密数据。双方愉快地传输所有数据。现在双方都可以使用对称加密算法安全地传输数据因为对称加密算法使用的密钥只有双方知道。 SSL参数配置
nginx 的https 功能基于模块ngx_http_ssl_module实现因此如果是编译安装的nginx要使用参数 ngx_http_ssl_module开启ssl功能但是作为nginx的核心功能yum安装的nginx默认就是开启的编译安装的nginx需要指定编译参数--with-http_ssl_module开启官方文档 https://nginx.org/en/docs/http/ngx_http_ssl_module.html配置参数如下 ssl on | off; 为指定的虚拟主机配置是否启用ssl功能此功能在1.15.0废弃使用listen [ssl]替代 ssl_certificate /path/to/file; 当前虚拟主机使用的公钥文件⼀般是crt文件 ssl_certificate_key /path/to/file; 当前虚拟主机使用的私钥文件一般是key文件 ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];支持ssl协议版本早期为ssl,现在是TSL默认为后三个 ssl_session_cache off | none | [builtin[:size]] [shared:name:size];配置ssl缓存 off 关闭缓存 none: 通知客户端支持ssl session cache但实际不支持 builtin[:size]使用OpenSSL内建缓存为每worker进程私有 [shared:name:size]在各worker之间使⽤一个共享的缓存需要定义一个缓存名称和缓存空间大小⼀兆可以存储4000个会话信息多个虚拟主机可以使用相同的缓存名称。 ssl_session_timeout time客户端连接可以复用ssl session cache中缓存的有效时长默认5m nginx证书签发
创建证书目录
cd /apps/nginx/
mkdir certs
cd certs
创建证书
openssl参数详解 version 用于查看版本信息 enc 用于加解密 ciphers 列出加密套件 genrsa 用于生成私钥 rsa RSA密钥管理(例如:从私钥中提取公钥) rsa:4096 用于生成一个新的4096位的RSA密钥 nodes 参数用于生成不包含私钥的证书 sha256 哈希算法是SHA256 req 生成证书签名请求(CSR) crl 证书吊销列表(CRL)管理 ca CA管理(例如对证书进行签名) dgst 生成信息摘要 rsautl 用于完成RSA签名、验证、加密和解密功能 passwd 生成散列密码 rand 生成伪随机数 speed 用于测试加解密速度 s_client 通用的SSL/TLS客户端测试工具 X509 X.509证书管理 verify X.509证书验证 pkcs7 PKCS#7协议数据管理 自签名CA证书 [rootlocalhost certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt Generating a 4096 bit RSA private key ................................................................................................................................................................. .................................................... writing new private key to ca.key ----- 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 (2 letter code) [XX]:CN 国家 State or Province Name (full name) []:Shaanxi 省份 Locality Name (eg, city) [Default City]:Xianyang 城市名称 Organization Name (eg, company) [Default Company Ltd]:fxq 公司名称 Organizational Unit Name (eg, section) []:fxq 部门 Common Name (eg, your name or your servers hostname) []:fxq.ca 通用名称 Email Address []: 邮箱 自制key和csr文件 [rootlocalhost certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout www.fxq.com.key -out www.fxq.com.csr Generating a 4096 bit RSA private key .............................................................................................................................................................................................................................................................................................. ........................................................................................... writing new private key to www.fxq.com.key ----- 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 (2 letter code) [XX]:CN State or Province Name (full name) []:Shaanxi Locality Name (eg, city) [Default City]:Xianyang Organization Name (eg, company) [Default Company Ltd]:fxq Organizational Unit Name (eg, section) []:fxq.com Common Name (eg, your name or your servers hostname) []:www.fxq.com Email Address []: Please enter the following extra attributes to be sent with your certificate request A challenge password []: An optional company name []: 签发证书 [rootlocalhost certs]# openssl x509 -req -days 365 -in www.fxq.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www.fxq.com.crt Signature ok subject/CCN/STShaanxi/LXianyang/Ofxq/OUfxq.com/CNwww.fxq.com/emailAddress2825577216qq.com Getting CA Private Key 验证证书内容 nginx证书配置 server {listen 80;listen 443 ssl;ssl_certificate /apps/nginx/certs/www.fxq.com.crt;ssl_certificate_key /apps/nginx/certs/www.fxq.com.key;ssl_session_cache shared:sslcache:20m;ssl_session_timeout 10m; https多域名复用
制作key和csr文件 [rootlocalhost certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout xxx.fxq.com.key -out xxx.fxq.com.csr Generating a 4096 bit RSA private key ...................................................................................................... ..................................................... writing new private key to xxx.fxq.com.key ----- 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 (2 letter code) [XX]:CN State or Province Name (full name) []:Shaanxi Locality Name (eg, city) [Default City]:Xianyang Organization Name (eg, company) [Default Company Ltd]:fxq Organizational Unit Name (eg, section) []:fxq.com Common Name (eg, your name or your servers hostname) []:XXX.fxq.com Email Address []:2825577216qq.com Please enter the following extra attributes to be sent with your certificate request A challenge password []: An optional company name []: 签名证书 [rootlocalhost certs]# openssl x509 -req -days 365 -in xxx.fxq.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out xxx.fxq.com.crt Signature ok subject/CCN/STShaanxi/LXianyang/Ofxq/OUfxq.com/CNXXX.fxq.com/emailAddress2825577216qq.com Getting CA Private Key 验证证书内容 nginx证书配置
[rootlocalhost certs]# cat /apps/nginx/conf/conf.d/xxx.conf
server {listen 80;listen 443;ssl_certificate /apps/nginx/certs/xxx.fxq.com.crt;ssl_certificate_key /apps/nginx/certs/xxx.fxq.com.key;ssl_session_cache shared:sslcache:20m;ssl_session_timeout 10m;server_name xxx.fxq.com;location /zx {root /apps/nginx/html/;index index.html;} } 关于favicon.ico favicon.ico 文件是浏览器收藏网址时显示的图标当客户端用浏览器问页面时浏览器会⾃自己主动发起请求获取页面的favicon.ico文件但是当浏览器请求的favicon.ico文件不存在时服务器会记录404日志而且浏览器也会显示404报错。 location /favicon.ico {root /data/nginx/html/pc;} nginx隐藏版本号 http下 server_tokens off; 去掉nginx
cd /usr/local/src/nginx-1.24.0/src/http/
vim ngx_http_header_filter_module.c重新编译 nginx -Vcd /usr/local/src/nginx-1.24.0./configure 后面编译参数与nginx -V看到的保持一致make make install 升级openSSL OpenSSL是一个的开放源代码软件库包应用程序可以使用这个包来进行安全通信避免窃听同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。 准备安装包在/usr/local/src/
cd /usr/local/src/
tar -zxvf openssl-1.1.1d.tar.gz
cd nginx-1.24.0
./configure --prefix/apps/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-http_perl_module --with-file-aio --add-module/usr/local/src/echo-nginx-module-master --with-threads --with-openssl/usr/local/src/openssl-1.1.1d
make make install