就业冲刺

Nginx

HTTPS 加密通讯

HTTPS = HTTP Over SSL = 基于SSL加密的HTTP通讯

HTTPS加密通讯不会被第三方监听.HTTPS是安全通讯.

证书工作原理:

  1. 浏览器中内嵌了证书颁发机构的根证书, 用于鉴定证书的真伪
  2. 建立网站时候需要向证书颁发机构申请证书, 用于证明网站域名的真实性.
  3. 将证书配置到Nginx等Web服务器
  4. 在进行 HTTPS 通讯时候, 浏览器会自动从服务器下载证书并且自动鉴定证书真伪, 并且自动建立加密通讯通道.

从阿里云申请证书:

下载证书:

实验步骤

具体的操作命令请根据实际情况灵活使用.

  1. 下载证书文件到 /usr/local/nginx/conf/cert
  2. 更新 nginx.conf 的配置, 并且测试配置文件
  3. 重新启动Nginx
  4. 在客户端配置域名解析
  5. 利用客户端访问 https://tts.canglaoshi.org

参考的nginx.conf

include tts.conf;

tts.conf

server{
    listen 80;
    server_name tts.canglaoshi.org;
    return 301 https://tts.canglaoshi.org;
}

server{
    listen 443; 
    server_name tts.canglaoshi.org;

    ssl on;

    ssl_certificate   cert/214438499540580.pem;
    ssl_certificate_key  cert/214438499540580.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root tts;
        index index.html;
    }
}

注意: 域名与证书是成对使用的, 一个证书用于证明对应的域名.

反向代理集群

什么是反向代理:

反向代理集群的优势是提高网站整体的并发处理能力.

配置使用反向代理

配置原理:

配置步骤

  1. 进行合理的规划: 规定每个服务器所扮演的角色.
  2. 配置每个Tomcat应用服务器, 并且启动测试.
  3. 配置Nginx服务器, 测试配置文件
  4. 重新启动Nginx
  5. 客户端配置域名解析
  6. 客户端浏览器访问域名, 可以看到多台Tomcat为一个域名服务

参考的nginx.conf

include tts.conf;

参考的 demo.conf

upstream toms{
    server 10.7.11.218:8080;
    server 10.7.11.244:8080;
    server 10.7.11.43:8080;
}

server{
    listen 80;
    server_name demo.canglaoshi.org;

    access_log logs/demo.access.log;
    error_log logs/demo.error.log;

    index index.jsp index.html;

    location / {
        proxy_pass http://toms;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
   }

}

阿里云配置Nginx转发到Tomcat

这里就可以将80和443端口的请求转发到Tomcat的8080端口了.

  1. 配置Nginx

    配置了2个域名 其中 tom.canglaoshi.org 绑定了ssl证书

  2. 测试 重新启动nginx

  3. 在阿里云的dns解析中解析 两个域名tom.canglaoshi.org, 1711.canglaoshi.org 到服务器ip
  4. 测试: 用浏览器访问这两个域名.

Nginx 集群转发策略

Nginx 支持4中转发策略

  1. 轮询(默认)

  2. ip_hash

  3. fair(第三方)

  4. url_hash(第三方)

服务器临时离线: 利用down 可以实现服务器临时离线, 一般用于对服务器进行维护.

案例:

upstream toms{
    ip_hash;
    server 10.7.11.218:8080 weight=10;
    server 10.7.11.244:8080 weight=80;
    server 10.7.11.43:8080  weight=20 down;
}

Redis

Redis 是一个基于内存的高性能的Key-Value非结构化数据库.

简单理解: Redis就是一个超大型的散列表, 算法类似于 HashMap!

  1. 在内存计算, 采用了Hash表算法
  2. 高性能
  3. 自动提供持久化存储, 防止断电, 可以解决缓存预热问题
  4. 支持5种数据类型(是5种Value类型, key类型只有一个String)
  5. 在软件架构中作为"缓存使用"

Redis 安装

Yum 安装 Redis

  1. 安装

    yum -y install redis
    
  2. 启动

    systemctl start redis.service
    
  3. 重启等...

编译安装

下载Redis

wget http://download.redis.io/releases/redis-3.0.0.tar.gz

安装gcc(可选)

yum -y install gcc

编译

tar -zxf redis-3.0.0.tar.gz
cd redis-3.0.0
mkdir /usr/local/redis-3.0.0
make PREFIX=/usr/local/redis-3.0.0 install

复制配置文件

cp redis.conf /usr/local/redis-3.0.0

修改配置文件 redis.conf 设置后台启动

修改配置文件,将其中的"daemonize no"行改为"daemonize yes",让其在后台运行。

启动服务器

/usr/local/redis-3.0.0/bin/redis-server /usr/local/redis-3.0.0/redis.conf &

& 符号的作用是将程序放到后台执行

关闭服务

/usr/local/redis-3.0.0/bin/redis-cli shutdown

使用Redis

实验

  1. 启动redis服务器

    cd
    redis-server /usr/local/redis-3.0.0/redis.conf & 
    
  2. 用客户端连接

    /usr/local/redis-3.0.0/src/redis-cli
    
  3. 测试:

    SET message "Hello World"
    GET message
    
  4. 帮助命令

    HELP @string
    HELP @[tab]