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
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2025年8月30日 上午11:22
下一篇 2025年8月30日 下午12:01


相关推荐

  • OpenClaw 配置教程 – AI 模型与聊天渠道设置

    OpenClaw 配置教程 – AI 模型与聊天渠道设置

    2026年3月13日
    2
  • 关于大学毕业 总结的文章2000_如何写大学学期总结

    关于大学毕业 总结的文章2000_如何写大学学期总结本文十天后设置为粉丝可见,喜欢的提前关注不要白嫖请点赞不要白嫖请点赞不要白嫖请点赞文中提到的书我都有电子版,可以评论邮箱发给你。文中提到的书我都有电子版,可以评论邮箱发给你。文中提到的书我都有电子版,可以评论邮箱发给你。本篇文章应该算是Java后端开发技术栈的,但是大部分是基础知识,所以我觉得对任何方向都是有用的。1、数据结构数据结构是计算机存储、…

    2025年9月21日
    7
  • IP地址的分类及范围详解:A、B、C、D、E五类是如何划分的[通俗易懂]

    IP地址的分类及范围详解:A、B、C、D、E五类是如何划分的[通俗易懂]IP地址类型最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。A类IP地址一个A类IP地址由1…

    2022年4月29日
    231
  • pixi 小游戏_PIXI兼容微信小游戏

    pixi 小游戏_PIXI兼容微信小游戏首先导入官方的 weapp adapter 然后导入 pixi min js 微信小程序使用 ES6 的 module 引用模块 具体参见 ES6 的 Module import libs weapp adapter import asPIXIfrom libs pixi min const pixelRatio windowWidth windowHeight wx get

    2026年3月18日
    2
  • 股票API

    实时股票数据接口大全股票数据的获取目前有如下两种方法可以获取:1.http/javascript接口取数据2.web-service接口1.http/javascript接口取数据1.1Sina股票数据接口以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:http://hq.sinajs…

    2022年4月7日
    66
  • linux pmap,linux下的ps和pmap

    linux pmap,linux下的ps和pmap今天有客户需要对系统进程进行内存跟踪于是尝试使用了几个 linux 内存跟踪工具首先 ps 一下看看系统跑着哪些 process root oracle10g psauxUSERPID CPU MEMVSZRSSTTY 00 0 SsSep100 01init 5 root20 00

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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