nginx 代理 http、https 配置

2023-05-16

nginx 代理 http、https 配置

  • http配置
  • ssl https 配置

  • nginx 部署安装在之前的文章中已有教程,这里不再叙述,详情访问:nginx在centos7环境下安装
  • 本文主要讲述配置代理,包含http 、https代理,配置文件在 nginx 安装目录下的 conf/nginx.conf ,
  • 如果想了解配置文件参数详情详见:nginx在centos7环境下安装
  • 按照nginx在centos7环境下安装,nginx 安装目录为 /usr/local/nginx 。如需查找用命令: whereis nginx

http配置

  • 编辑 conf/nginx.conf

     cd /usr/local/nginx
     vim conf/nginx.conf
    
  • 如下图所示,这里新增了8082端口的代理模块,listen 参数为配置端口,location / 为代理地址前缀(为保证安全可移除),保存重启nginx 后, 浏览器访问 ip:8082 就能看到代理页面。

    listen 8082:代表监听 8082 端口
    server_name test:代表外网访问的域名
    location / {}:代表一个过滤器,/匹配所有请求,我们还可以根据自己的情况定义不同的过滤,比如对静态文件js、css、image制定专属过滤
    root html:代表站点根目录
    index index.html:代表默认主页

    在这里插入图片描述

  • 每个代理模块可以配置多个代理地址,如下图所示,代理前缀为event,代理地址为 http:127.0.0.1:8081/event,重启nginx服务后,浏览器打开 ip:8082/event 即可看到系统界面。

    location /{}:代表过滤器,用于制定不同请求的不同操作
    proxy_pass:代表后端服务器组名,此组名必须为后端服务器站点域名

    在这里插入图片描述

        server {
            listen       8082;
            server_name  test;
    
            location / {
                  root   html;
                  index  index.html index.htm;
            }
    
            location /event{
                proxy_pass http://127.0.0.1:8081/event;
    
                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;
    
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
    
                proxy_connect_timeout 4s;
                proxy_read_timeout 120s;
                proxy_send_timeout 12s;
    
            }
        }
    
    

ssl https 配置

  1. 配置 ssl 之前,先保证nginx 安装了ssl模块,详情在 nginx在centos7环境下安装。

  2. 生成证书

    • 确定是否安装 openssl

      which openssl
      # 或者
      openssl version
      
    • 如果没有安装,通过apt-get或者yum等方式安装即可

       sudo apt-get install openssl
      
    • 进入nginx 安装目录,创建key文件夹并进入

      cd /usr/local/nginx
      mkdir key
      cd key
      
    • 生成一个名为“ssl.key”的 RSA key文件:执行结果:生成ssl.pass.key 和 ssl.key

        openssl genrsa -des3 -passout pass:casia -out ssl.pass.key 2048
        openssl rsa -passin pass:casia -in ssl.pass.key -out casia-ssl.key
      

      在这里插入图片描述

    • 删除中间文件

      rm ssl.pass.key
      
    • 利用已经生成的 ssl.key 文件,进一步生成 ssl.csr 文件

      openssl req -new -key casia-ssl.key -out casia-ssl.csr
      

      在这里插入图片描述

    • 执行此行命令会提示输入密码,按回车即可,因为前面我们在生成 ssl.key 时选择了密码留空。 最后我们利用前面生成的 ssl.key 和 ssl.csr 文件来生成 ssl.crt 文件,也就是自签名的 SSL 证书文件:

      openssl x509 -req -days 3650 -in casia-ssl.csr -signkey casia-ssl.key -out casia-ssl.crt
      

      在这里插入图片描述

    • 这一步之后,我们得到一个自签名的 SSL 证书文件 ssl.crt,有效期为 3650 天。此时,ssl.csr 文件也已经不再被需要,可以删除掉了

      rm ssl.csr
      
    • 将.crt的ssl证书文件转换成.pem格式

      openssl x509 -in casia-ssl.crt -out casia-ssl.pem
      

      在这里插入图片描述

    • 删除 casia-ssl.crt casia-ssl.csr

      sudo rm -rf casia-ssl.crt casia-ssl.csr
      
    • 自此证书生成完毕,开始配置代理!

  3. 配置代理地址

    • 修改nginx配置文件

       cd /usr/local/nginx
       vim conf/nginx.conf
      
    • 增加server块,配置监听端口61231,注意端口后要加上 ssl。同时设置 ssl_certificate 参数值指向生成的 …/key/casia-ssl.pem 证书,设置 ssl_certificate_key 参数值指向生成的 …/key/casia-ssl.key 证书
      在这里插入图片描述

       server {
              listen       61231 ssl;
              server_name  localhost;
      
              ssl_certificate      ../key/casia-ssl.pem;
              ssl_certificate_key  ../key/casia-ssl.key;
              ssl_session_cache    shared:SSL:1m;
              ssl_session_timeout  5m;
              ssl_ciphers  HIGH:!aNULL:!MD5;
              ssl_prefer_server_ciphers  on;
              client_max_body_size 500M;
      
              location / {
                  root   html;
                  index  index.html index.htm;
                  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;
              }
      
          }
      
      
    - 保存重启nginx,浏览器访问 https://ip:61231 即可看到信息页面!
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx 代理 http、https 配置 的相关文章

随机推荐

  • DataBinding的基本使用(五)

    DataBinding的基本使用 五 DataBinding基本使用包括以下内容 xff1a 单纯的摆脱findviewbyid 绑定基本数据类型及String 绑定Model数据 绑定事件 通过静态方法转换数据类型 通过运算符操作数据 自
  • idea快捷键大全

    实用快捷键 Ctrl 43 或 Ctrl 43 Shift 43 注释 xff08 或者 xff09 Ctrl 43 D 复制行 Ctrl 43 X 删除行 快速修复 alt 43 enter modify cast 代码提示 alt 43
  • 自定义组件实现v-model

    在项目中需要做一个标题展开框 xff0c 点击展开才会显示下面的内容 因为多个地方都需要这样的可展开标题 xff0c 所以做了一个自定义组件 组件需要一个双向绑定的值 xff0c 控制展开 缩放 于是就思考 xff0c 父向子可以用prop
  • linux下提示bash:command not found

    如果新装的系统 xff0c 运行一些很正常的诸如 xff1a shutdown xff0c fdisk的命令时 xff0c 悍然提示 xff1a bash command not found 那么 首先就要考虑root 的 PATH里是否已
  • k8s与pod概念

    此文章为学习过程中根据网上资源整合总结 文章目录 1 为什么需要k8s1 1 应用部署模式的演进1 11 模式对比1 12 各模块介绍 1 2 管理大量的容器 k8s 2 ks8的集群架构3 pod k8s调度的最小单元3 1 一个 pod
  • git在http协议切换账号/输错账号密码如何更改

    掩面哭泣 xff0c 为什么提交总会出问题 这次是因为我push到gerrit上的时候第一次用错成了自己的账号 xff0c 然后想更改成公司的 xff0c 不再跳出登录界面了 xff0c 改不了 因为只有公司账号上设置了agreement
  • 【vue】利用prettier插件规避烦人的eslint报错和代码不规范

    本文主要包括两点 xff1a 大家协同开发代码各异 xff0c eslint加上 64 vue prettier采取recommended 43 prettier组合可使得代码更规范使用vscode的prettier插件在修改保存时自动格式
  • 前端理解base64

    一 背景 xff1a ascii码 字符 61 gt 二进制 计算机中所有数据的存储都是以二进制模式 xff0c 比如想要存储abcd需将其转化为二进制 xff0c 具体用哪些二进制来表示哪个符号 xff0c 有一个统一的编码规则 xff0
  • antd使用相关笔记

    文章目录 modal设置样式无效checkboxform设置值 modal设置样式无效 因为挂在div外 xff0c 所以用less时包在该组件的根div下的css样式设置无效 xff0c 需设置 xff1a span class toke
  • vue实例的生命周期详解

    Vue实例的生命周期 简介 此篇文章说的是最简单的单个VUE组件的生命周期 官网中的长图诠释了Vue实例从创建 xff0c 运行到销毁的整个过程 从vue实例的创建 xff0c 运行 xff0c 销毁期间 xff0c 总是伴随着各种各样的事
  • vue实例和组件的区别

    引言 上次写vue单组件项和路由的时候 xff0c 想到一个问题 new Vue 是一个Vue实例 xff0c 那么组件是Vue实例吗 xff1f 分析 之前说了 xff0c 有两种开发方式 一个是基于浏览器的 xff08 即直接在scri
  • 全面分析ajax跨域访问原因及解决方案

    文章目录 引言什么是ajax跨域问题为什么会发生ajax跨域访问解决思路方法一 xff1a 浏览器禁止检查方法二 xff1a jsonp解决 jsonp是什么 用jsonp后台需要改动 jsonp原理 jsonp有什么弊端 方法三 xff1
  • 前端工程化--commit代码校验配置

    需求 配置使得在git commit m 39 xxxx 时 xff0c 先执行1 eslint检测 2 commit规范检测 xff0c 两个条件通过后才commit成功 xff0c 才可以push代码 是前端工程化的一部分 xff0c
  • flutter错误: 找不到或无法加载主类 org.gradle.wrapper.GradleWrapperMain

    项目莫名其妙的运行时不能使用 终端 gradlew 命令 输入命令就报错 找不到或无法加载主类 org gradle wrapper GradleWrapperMain 正常的项目中是有 gradle 的jar和properties文件的
  • ChatGPT报错“Sorry You Have Been Blocked“ 解决办法

    5月以来 xff0c 很多用户在使用ChatGPT时遇到如上图所示的错误 这篇文章将讨论为什么会报这个错误以及如何尝试解决它 以下是最常见的原因 xff1a 使用VPN或代理服务浏览器问题 xff0c 例如版本过时或不兼容可疑的浏览模式触发
  • resultMap(12)

    前记 xff1a 这是很早之前自学学习myBatis时的笔记 xff0c 内容比较基础 xff0c 适合新手 xff0c 内容基本是来自网络 xff0c 如有雷同 xff0c 敬请谅解 xff01 resultMap resultType
  • 服务器性能之IO性能指标含义

    最近在做日志易可视化展示 xff0c 涉及到服务器性能指标分析 xff0c 需要了解各个指标的含义 xff0c 下面是I O指标的含义 xff0c 记录下以备后用 xff1a rrqm s 每秒对该设备的读请求被合并次数 xff0c 文件系
  • Android进阶-apk系统签名

    一 来源 有时候我们开发一个apk需要系统权限 xff0c 于是我们便会在apk的AndroidManifest xml中添加如下属性 xff1a android sharedUserId 61 34 android uid system
  • 微信小程序使用lottie-miniprogram插件。显示json格式的动画,手机上锯齿模糊问题

    https github com wechat miniprogram lottie miniprogram 使用办法 通过 npm 安装 xff1a npm install save lottie miniprogram 传入 canva
  • nginx 代理 http、https 配置

    nginx 代理 http https 配置 http配置ssl https 配置 nginx 部署安装在之前的文章中已有教程 xff0c 这里不再叙述 xff0c 详情访问 xff1a nginx在centos7环境下安装本文主要讲述配置