Nginx加密以及反向代理「建议收藏」

Nginx加密以及反向代理「建议收藏」一、https加密算法http协议在传输过程中使用的是明文,如果传输的是用户名和密码等信息就不安全。https就是在原来http协议中加上ssl算法,来对传输的数据进行加密。https加密的核心就是通过秘钥来实现。秘钥(加密算法)的分类:1.对称算法(加密和解密用一样的密码):AES,DES(适合单机加密)2.非对称算法(公钥和私钥):RSA,DSA3.信息摘要:md5,sha256…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、https加密算法

http协议在传输过程中使用的是明文,如果传输的是用户名和密码等信息就不安全。https就是在原来http协议中加上ssl算法,来对传输的数据进行加密。https加密的核心就是通过秘钥来实现

  • 秘钥(加密算法)的分类:
    1.对称算法(加密和解密用一样的密码):AES,DES(适合单机加密)
    2.非对称算法(公钥和私钥):RSA,DSA
    3.信息摘要:md5,sha256,sha512(数据完整性检验)
    目前网站主要用非对称加密算法

  • 实现htpps加密步骤
    1.生成证书和私钥(就是公钥和私钥)

     cd /home/application/nginx/conf  #一定要进入conf目录下
     openssl genrsa >my.key  #生成私钥
     openssl req -new -x509 -key my.key -out my.crt #使用私钥生成对应证书。这里除了my.crt其他不能变,且my.key与私钥文件名一样
    #  openssl req -new -x509 -key my.key -out my.crt
       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) []: GX #省份信息随便写
    Locality Name (eg, city) [Default City]:dd #城市信息,随便编写
    Organization Name (eg, company) [Default Company Ltd]:kk#公司名称随便写
    Organizational Unit Name (eg, section) []:ll#部门信息随便写
    Common Name (eg, your name or your server's hostname) []:vv#服务器主机名随便写
    Email Address []:fgf #邮箱地址随便写
    

2.修改nginx.conf实现网站加密

   vim /home/application/nginx/conf/nginx.conf
   # vim /home/application/nginx/conf/nginx.conf

 worker_processes  1;
 error_log logs/error.log error;
 events {
worker_connections  1024;
}
http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';
 client_header_buffer_size 512k;
large_client_header_buffers 4 512k;
 #nginx vhosts config
include extra/www.conf;
include extra/bbs.conf;
include extra/blog.conf;
include extra/status.conf;
include extra/secret.conf;  #加上加密域名配置文件
}

配置extra/secret.conf

 vim /home/application/nginx/conf/extra/secret.conf

#https server
 server {    
     listen       443 ssl;
     server_name  secret.ceishi.com;

     ssl_certificate      my.crt; #公钥
     ssl_certificate_key  my.key;#私钥

     ssl_session_cache    shared:SSL:1m;
     ssl_session_timeout  5m;

     ssl_ciphers  HIGH:!aNULL:!MD5;
     ssl_prefer_server_ciphers  on;

     location / {
        root   html/secret;
        index  index.html index.htm;
    }
}
mkdir /home/application/nginx/html/secret
echo "jiami.ceishi.com" >/home/application/nginx/html/secret/index.html
/home/application/nginx/sbin/nginx -t
/home/application/nginx/sbin/nginx -s reload

二、Nginx作为代理软件

nginx既可以作为一个web服务器也可以作为反向代理服务器。实现web服务高可用、没有单点故障,实现负载均衡功能,集群高可用。

  • 环境搭建
    两台web服务器,内容一样(装appache)
    地址为:192.168.31.38 192.168.31.134;
    一台nginx调度器
    地址为:192.168.31.230:

  • 配置基于域名的虚拟主机
    装appache

    yum install httpd -y
    禁用默认的主机模式
    vim /etc/httpd/conf/httpd.conf
    注释下面这行内容
    #DocumentRoot "/var/www/html"
    添加域名的虚拟主机配置
    cd /etc/httpd/conf.d/  
    vim virtualhost.conf #添加如下内容
    NameVirtualHost *:80 
      <VirtualHost *:80>
     DocumentRoot "/var/www/html/bbs"
    ServerName    blog.ceishi.com
    </VirtualHost>
    
    以前的版本光注释了他还不行,还需要在配置文件中写明在哪个地址的哪个端口上启用虚拟主机,比如加一行:
    
    NameVirtualHost 192.168.100.24:80,但是2.4.x的httpd版本就不需要这一行了。
     
    mkdir /var/www/html/bbs
    
    cd /var/www/html/bbs
    echo "blog.3138.com">index.html
    #vim /etc/hosts
    192.168.31.38 linux7.6 blog.ceishi.com
    #curl -L  blog.ceishi.com            #测试          
     blog.3138.com
    
  • 配置代理服务器nginx

    worker_processes  1;
    error_log logs/error.log error;
    events {
       worker_connections  1024;
     }
     http {
     include       mime.types;
     default_type  application/octet-stream;
     sendfile        on;
     keepalive_timeout  65;
      log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                   '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
       upstream bbs-server-pools{  #upstream标签放在http里server标签外
       此处注意upstream后面的名字不能是这样的下划线bbs_server_pools,否则出现400错误
          server 192.168.31.38:80;   #web服务器地址
          server 192.168.31.134:80;
          }
     #nginx vhosts config
     include extra/www.conf;
      include extra/bbs.conf;
       include extra/blog.conf;  
      include extra/status.conf;
        }
    

    修改server标签配置

        #vim  nginx/conf/extra/bbs.conf
        server {
     listen       80;
     server_name  bbs.ceishi.com;
     location / {
        # root   html/bbs;
        # index  index.html index.htm;
       proxy_pass http://bbs-server-pools;  #传递给bbs_server_pools
        }
        }
    
  • 客户端测试
    客户端ip为:192.168.31.128

       vim /etc/hosts
     127.0.0.1   localhost localhost.localdomain localhost4   localhost4.localdomain4
      ::1         localhost localhost.localdomain localhost6  localhost6.localdomain6
     192.168.31.230 bbs.ceishi.com  #写的时nginx代理的地址
     #curl bbs.ceishi.com
      31.134bbs.com
      #curl bbs.ceishi.com
         bbs.31.128.com
        for i in 'seq 10' ;do curl bbs.ceishi.com; sleep 1;done
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197673.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ubuntu分区方案(合并分区)

    MostPCoperatingsystemsstillworkwithanancientdiskpartitionschemethathistoricallymakesdistinctionbetweenprimaryandextendedpartitions.Italsoplacesalimitationforfourprimarypart

  • [基础控件]—状态切换控件CompoundButton及其子类CheckBox、RadioButton、ToggleButton、switch事件监听与场景使用

    [基础控件]—状态切换控件CompoundButton及其子类CheckBox、RadioButton、ToggleButton、switch事件监听与场景使用一、事件监听对于普通的Button,对其进行事件监听Google官方给出了常见的三种监听方式:1、对每一个button设置事件监听器button.setOnClickListener(View.Onc

  • 4个基本不等式的公式高中_不等式链(高中4个基本不等式链推导)

    4个基本不等式的公式高中_不等式链(高中4个基本不等式链推导)高中数学基本不等式链如下:算术平均数(arithmeticmean),又称均值,是统计学中最基本、最常用的一种平均指标,分为简单算术平均数、加权算术平均数。它主要.几个不等式联立起来,叫做不等式组即不等式链。用大于号“>”、小于号“在不等式中,有重要作用的抄几个基本不等式,串在一起,即:当a,b>0时,2ab/(a+b)<=根号ab<=(a+b)/2<=根号[(…

  • 怎么安装纯净版win10_影视大全纯净版app下载

    怎么安装纯净版win10_影视大全纯净版app下载文章目录1.制作系统安装盘1.1准备U盘以及一台用来制作安装盘的电脑1.2下载WIN10安装包1.3制作完成的系统安装盘1.4U盘格式化应选择的文件系统2.安装WIN10操作系统前的准备2.1插入系统安装盘2.2设置U盘(系统安装盘)为第一启动项2.3注意:启动引导方式的选择2.4补充:磁盘分区格式(MBR分区和GPT分区)和启动引导(Legacy和UEFI)的关系3.开始安装WIN10操作系统3.1将系统直接安装到固态硬盘内(不分区)3.2将固态硬盘分区后,将系统安装到其中一个

  • java 汉字乱码_Java中文乱码问题

    java 汉字乱码_Java中文乱码问题一、MyEclipse下的java文件中文乱码问题(MyEclipse6.5):解决方法一:Window–àPreferences…–àGeneral–àContentTypes–àText–àJavaSourceFile中Defaultencoding改写成UTF-8(你所需的编码类型)然后Update,OK确定就可以了。二、1、编码编码比较常用的有:UTF-…

  • jtl转换成html,Jmeter的jtl文件转换HTML报告[通俗易懂]

    jtl转换成html,Jmeter的jtl文件转换HTML报告[通俗易懂]Jmeter我们用做接口测试的时候使用可视化界面,可以通过查看结果树或者聚合报告来观看结果。但是,在工作中,这样的结果,往往也要成为你测试报告的一部分,傻的办法当然是截图,然后展示,这样的傻办法,我用了几次就不想再用,一次截图次数太多,让人看的眼花缭乱,不能很好的体现我们测试报告的准确性和说服力。做为一个,测试开发,就要来解决这样的问题,尽量把重复工作降低,提升工作效率。通过参考,我找到了Jmet…

    2022年10月29日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号