zoukankan      html  css  js  c++  java
  • nginx 的*及缓存功能

    上游服务器的设置

        server {
            #监听的IP及端口
            listen      127.0.0.1:8080;
            #虚拟主机对硬解析的主机名    
            #server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
           #所有的此虚拟主机匹配的请求都到chenxi此网页目录下
            location / {
                alias   chenxi/;
                #set $limit_rate 1;
                #autoindex on;
               # index  index.html index.htm;
    
            }
    

      代理服务服务器的设置

        upstream cx {
            server 127.0.0.1:8080;   定义上游服务器组
            }
        server {
            listen       80;
            #server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                    proxy_set_header Host $host;   向上游服务器传变量
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-F $proxy_add_x_forwarded_for;
                    #proxy_cache my_cache;
                    #proxy_cache_key $host$uri$is_args$args;
                    #proxy_cache_valid 200 304 302 1d;
                    proxy_pass http://cx; 代理后端服务器
            }
    

      启动两个nginx服务

    ../sbin/nginx   代理启动
    
    nginx -s reload
    

      缓存的配置

            proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
        server {
            listen       80;
            #server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-F $proxy_add_x_forwarded_for;
                    proxy_cache my_cache;   缓存共享内存
                    proxy_cache_key $host$uri$is_args$args; 用户传浏览器传来的单独key和一些参数定义
                    proxy_cache_valid 200 304 302 1d;
                    proxy_pass http://cx;
            }
    
    ../sbin/nginx -s reload
    

      图解ssl加密流程

    工作与tcp/IP 七层模型的网络层

    加密套件

    对称加密算法与非对称加密算法

    对称加密算法

    具体实现

     非对称加密

    证书的公信如何得到保障

    证书组成部分

    证书链

    ssl 通信过程

    HTTPS采用混合加密算法,即共享秘钥加密(对称加密)和公开秘钥加密(非对称加密)。
    通信前准备工作:
    A、数字证书认证机构的公开秘钥(CA公钥)已事先植入到浏览器里;
    B、数字证书认证机构用自己的私有密钥对服务器的公开秘钥做数字签名,生成公钥证书,并颁发给服务器。

    1、client hello
    握手第一步是客户端向服务端发送 Client Hello 消息,这个消息里包含了一个客户端生成的随机数 Random1、客户端支持的加密套件(Support Ciphers)和 SSL Version 等信息。

    2、server hello
    服务端向客户端发送 Server Hello 消息,这个消息会从 Client Hello 传过来的 Support Ciphers 里确定一份加密套件,这个套件决定了后续加密和生成摘要时具体使用哪些算法,另外还会生成一份随机数 Random2。注意,至此客户端和服务端都拥有了两个随机数(Random1+ Random2),这两个随机数会在后续生成对称秘钥时用到。

    3、Certificate
    这一步是服务端将自己的公钥证书下发给客户端。

    4、Server Hello Done
    Server Hello Done 通知客户端 Server Hello 过程结束。

    5、Certificate Verify
    客户端收到服务端传来的公钥证书后,先从 CA 验证该证书的合法性(CA公钥去解密公钥证书),验证通过后取出证书中的服务端公钥,再生成一个随机数 Random3,再用服务端公钥非对称加密 Random3生成 PreMaster Key。

    6、Client Key Exchange
    上面客户端根据服务器传来的公钥生成了 PreMaster Key,Client Key Exchange 就是将这个 key 传给服务端,服务端再用自己的私钥解出这个 PreMaster Key 得到客户端生成的 Random3。至此,客户端和服务端都拥有 Random1 + Random2 + Random3,两边再根据同样的算法就可以生成一份秘钥,握手结束后的应用层数据都是使用这个秘钥进行对称加密。为什么要使用三个随机数呢?这是因为 SSL/TLS 握手过程的数据都是明文传输的,并且多个随机数种子来生成秘钥不容易被破解出来。

    nginx传输小文考研的是非对称加密性能;处理大文件时考虑的是对称加密算法的性能

    构建https站点

    在openResty中填加lua代码

            location /cx {
                    default_type text/html;
                    content_by_lua '
    ngx.say("Usre-Agent: ", ngx.req.get_headers()["User-Agent"]) 
                    ';# 表示取出客户端浏览类型内核,在构建http响应报文时添加到响应头里,返回给用户
            }
    [root@nginx conf]# ../sbin/nginx -t
    nginx: the configuration file /home/openresty/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /home/openresty/nginx/conf/nginx.conf test is successful
    ../sbin/nginx -s reload
    

      

    草都可以从石头缝隙中长出来更可况你呢
  • 相关阅读:
    springmvc到底怎么工作的
    (netty专题)初步认识BIO、NIO、AIO
    dubbo基本使用理解
    warning: ignoring option PermSize=512m; support was removed in 8.0解决
    面试都看那些
    MySQL——通过EXPLAIN分析SQL的执行计划
    springboot中的json、gson、fastjson如何使用与日期格式转换
    如何生成一个不重复的四位数
    深入理解SpringCloud之Gateway 接上篇Webflux快速入门
    Layui 手册2
  • 原文地址:https://www.cnblogs.com/rdchenxi/p/10971103.html
Copyright © 2011-2022 走看看