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)


相关推荐

  • vs code如何运行_vs如何代码提示

    vs code如何运行_vs如何代码提示第一步:新建C#项目文件夹并将其在VisualStudioCode中打开之后,在底下的终端中输入下方指令创建项目的.csproj文件:dotnetnewconsole第二步:执行下方指令编译代码:dotnetrestore第三步:输入下方指令运行项目。dotnetrun…

  • java导出pdf模板_java模板导出PDF[通俗易懂]

    java导出pdf模板_java模板导出PDF[通俗易懂]本次完善综合特点:一对一,点对点的给对应的地方写值,比如模板里面放了个name标识,在程序里把“张三”赋给name,那么输出的pdf里面name的地方就变成了张三,准确方便快捷支持中文,可以使用自己下载的字体。支持图片:图片的大小范围可以在模板随意调,生成出来的图片不会超过范围。而且不需要根据坐标去算,程序里面自动计算的。支持多页模板,即使是好几页的模板,只要每个变量对应的范围确定好了,生成出来的…

  • 数据平滑处理

    数据平滑处理

    2021年11月21日
  • 如何下载ts文件

    如何下载ts文件首先,什么是ts,请自行百度,网上资料很多,了解下基本概念就行,这里就不多做介绍了。网页中是如何播放ts文件的:网页中一般是在一个文件中描述排列顺序,这个文件一般都以m3u8为后缀,然后通过分片段不

  • vmware虚拟机连接网络[通俗易懂]

    vmware虚拟机连接网络[通俗易懂]当安装好vm虚拟机后,进入系统,发现打开无法打开网页,可参考如下步骤进行配置1.vm打开虚拟及设置,选择网络适配器,网络连接选择自定义,VMnet8(NAT模式)2.vm虚拟机打开编辑->虚拟网络编辑器,选择VMnet8,虚拟机会自动分配子网IP3.打开网络和共享中心(win10为例)4.启动虚拟机,即可上网…

  • 全家桶激活码3月最新在线激活

    全家桶激活码3月最新在线激活,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

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

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