zoukankan      html  css  js  c++  java
  • Nginx*+负载均衡简单实现(https方式)

    10背景: A服务器(10.0.100.106)作为nginx代理服务器

                B服务器(10.0.100.133)作为后端真实服务器

     HTTPS配置场景

    秘钥生成操作步骤

    1.生成key密钥
    2.生成证书签名请求文件(csr文件)
    3.生成证书签名文件(CA文件)

     1.检查当前环境

    //openssl必须是1.0.2
    [root@10.0.100.133~]# openssl version
    OpenSSL 1.0.2k-fips  26 Jan 2017
    
    //nginx必须有ssl模块
    [root@10.0.100.133 ~]# nginx -V
     --with-http_ssl_module
     
    [root@10.0.100.133 ~]# mkdir /usr/local/nginx/conf/ssl -p
    [root@10.0.100.133 ~]# cd //usr/local/nginx/conf/ssl 

    2.创建私钥

    [root@10.0.100.133 ssl]# openssl genrsa -idea -out server.key 2048
    Generating RSA private key, 2048 bit long modulus
    .....+++
    //记住配置密码, 我这里是1234
    Enter pass phrase for server.key:
    Verifying - Enter pass phrase for server.key:
    

    3.生成使用签名请求证书和私钥生成自签证书

    [root@10.0.100.133 ssl]# openssl req -days 36500 -x509 
    -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
    
    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:SZ
    Locality Name (eg, city) [Default City]:SZ
    Organization Name (eg, company) [Default Company Ltd]:edu    
    Organizational Unit Name (eg, section) []:SA
    Common Name (eg, your name or your server's hostname) []:xuli  
    Email Address []:xuli@foxmail.com
    

    4.后段nginx(10.0.100.133)访问的配置文件

    后端nginx配置
    server {
        listen 443;
        server_name localhost;
        ssl off;                                     #这个一定要写,否则访问https时会出现报错:The plain HTTP request was sent to HTTPS port
        index index.html index.htm index.php;
        #ssl_session_cache share:SSL:10m;
        ssl_session_timeout 10m;
        ssl_certificate   /usr/local/nginx/conf/ssl/server.crt;
        ssl_certificate_key  /usr/local/nginx/conf/ssl/server.key;
        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   /usr/share/nginx/html;
            index  dashboard index;
            proxy_pass http://127.0.0.1:8080/;                        #本地的tomcat为8080端口,当访问本地的80端口
            proxy_set_header Host       $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

    访问10.0.100.133:443
    
    

    5.将密钥传给前端服务器

    前端nginx的配置
    
    server {
       listen 443 ssl;
       server_name www.xxx.cn;
       #ssl off;
       access_log logs/ssl-access.log;
       error_log logs/ssl-error.log;
       ssl_certificate   /usr/local/nginx/conf/ssl/server.crt;
        ssl_certificate_key  /usr/local/nginx/conf/ssl/server.key;
       ssl_session_timeout 5m;
    
    
       location / {
       proxy_pass http://443;
       proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
       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_set_header X-Forwarded-Proto https;
       proxy_redirect off;
    }
    }
    
    upstream 443 {
        ip_hash;
        server 10.0.100.133:443 max_fails=3 fail_timeout=30s;
    }
    server {
        listen 3116;
        server_name www.xxx.cn;
        index index.html index.php index.htm;
        access_log logs/ssl-access.log;
        error_log logs/ssl-error.log;
     rewrite ^(.*)$  https://$server_name$1 redirect;
        }
    

    6.通过域名访问成功

  • 相关阅读:
    Web 安全 —— XSS攻击的原理
    HTTP缓存
    JavaScript 事件循环机制(Event Loop)
    搭建前端监控系统
    电脑 直接下载cyida deb
    基于样例的传统图像修补算法实现
    Android WorkManager 定时任务
    Android WorkManager工作约束,延迟与查询工作
    微信小程序地图如何显示附近厕所WC步行路线
    物流解决方案再添利器 腾讯位置服务推出货运“三件套”
  • 原文地址:https://www.cnblogs.com/jimmy-xuli/p/8990069.html
Copyright © 2011-2022 走看看