当前位置: 首页 > 工具软件 > ng-dynamic > 使用案例 >

立Flag 学习Ng - 缓存及压缩&动静分离&https

袁泰平
2023-12-01

立Flag 学习Ng - 缓存及压缩&动静分离&https

  • 动静分离
  • 缓存配置及Gzip配置
  • https配置

缓存及压缩

location ^~ /qq.png {
    #	expires 2s;#缓存2秒
    expires 2m;#缓存2分钟
    #	expires 2h;#缓存2小时
    #	expires 2d;#缓存2天
	root html/gzip;
}
location ^~ /chrome.png {
	#缓存2分钟
    expires 2m;
    root html/gzip;
}
 # 这里要注意看浏览器支持什么压缩格式
location ~ /(.*)\.(html|js|css|jpg|jpeg|png|gif)$ {
	# 启用gzip压缩,默认是off,不启用
    gzip on; 

    # 对js、css、jpg、png、gif格式的文件启用gzip压缩功能
    gzip_types application/javascript text/css image/jpeg image/png image/gif;
    gzip_min_length 1024; # 所压缩文件的最小值,小于这个的不会压缩
    gzip_buffers 4 1k; # 设置压缩响应的缓冲块的大小和个数,默认是内存一个页的大小
    gzip_comp_level 1; # 压缩水平,默认1。取值范围1-9,取值越大压缩比率越大,但越耗cpu时间

    root html/gzip;
}

动静分离

https://www.cnblogs.com/gongjingyun123–/p/11424805.html

https://blog.51cto.com/wgkgood/1094236

https://blog.51cto.com/4402071/2087071

https://www.cnblogs.com/wajika/p/6575656.html

一句话就是节省服务器资源

  • 静态文件是不变的,因此不需要重复的从应用服务器中不断的抽取。
  • 动静分离后静态资源不在需要从服务器中获取就节省了服务器的带宽
  • 静态资源响应也就更快一些

ng实现动静分离的原理是啥?

带正则匹配的location来指定匹配项来区分动态和静态的文件来进行处理的。

单台服务器实现动静分离

# 从 ng 中获取
location / {
    root /app/ng/staticRout/;
    index.php;
}
location ~* \.(png|jpg|mp4)${
     #指定图片路径
    root /app/ng/staticRout/images;
    #压缩
    gzip on;
    .....
}

# 指向其他服务器
location ~ \.php$ {
    staticRout_pass 127.0.0.1:8900;
    .....
}

多台服务器实现动静分离

# 静态资源
upstream static {
    server 127.0.0.1:800;
}

# 动态资源
upstream dynamic {
    server 127.0.0.1:801;
}

server {
        listen 80;
        server_name jimmy.com;

        location ~* \.(jpg|png|gif)$ {
                proxy_pass http://static;
                proxy_set_header Host $http_host;
        }

        location ~ \.jsp {
                proxy_pass http://dynamic;
                proxy_set_header Host $http_host;
        }
}

https配置

https交互过程

浏览器使用公钥,把数据加密后,再发送出去。经过公钥加密内容,只有有私钥才能解密读取

nginx配置https的时候,需要两个东西:(此两样需购买)

  • key,私钥。放在nginx服务器里面,仅此一份

  • 证书,公钥,供浏览器去下载

配置参考官网:

http://nginx.org/en/docs/http/configuring_https_servers.html

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.crt;
    ssl_certificate_key www.example.com.key;
    ...
}

openssl安装(略)

自己生成公钥私钥测试(仅能测试,不能用于生产)

# 创建服务器私钥 执行后输入密码(自己设置)
> openssl genrsa -des3 -out server.key 1024
# 创建签名请求证书(CSR)
> openssl req -new -key server.key -out server.csr
# 加载ssl支持ng并去除私钥密码
openssl rsa -in server.key -out server_nopass.key
# 最后标记证书使用啥该的 私钥和csr
openssl x509 -req -days 365 -in server.csr -signkey server_nopass.key -out server.csr
 类似资料: