首页 > 系统相关 >使用nginx作为反向代理配置多个域名的https证书

使用nginx作为反向代理配置多个域名的https证书

时间:2023-06-17 23:34:12浏览次数:46  
标签:key cn cc swjnxyf nginx 域名 proxy https

偶然想到,自己还没有做好使用nginx作为反向代理,搭配多个域名的https,心血来潮,就问了下bing怎么做。

docker-compose.yml

version: '3.7'

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx-proxy/certs:/etc/nginx/certs:ro
      - ./nginx-proxy/conf.d:/etc/nginx/conf.d # mount the local config directory


  nginx1:
    image: nginx
    container_name: nginx1
    restart: always
    environment:
      - VIRTUAL_HOST=swjnxyf.cc # change this to your first domain name
    volumes:
      - ./nginx1/html:/usr/share/nginx/html # mount the local html directory

  nginx2:
    image: nginx
    container_name: nginx2
    restart: always
    environment:
      - VIRTUAL_HOST=swjnxyf.cn # change this to your second domain name
    volumes:
      - ./nginx2/html:/usr/share/nginx/html # mount the local html directory


docker-compose up -d 就会自动创建目录了。
[root@localhost server]# tree
.
├── docker-compose.yml
├── nginx1
│   └── html
├── nginx2
│   └── html
└── nginx-proxy
    ├── certs
    └── conf.d

当然。html文件夹的静态网页需要自行创建。
随后,可以进入nginx-proxy/conf.d目录,修改配置文件,毕竟,没有配置,代理就不会运行。

nginx.conf

upstream swjnxyf.cc {
  server nginx1;
}

upstream swjnxyf.cn {
  server nginx2;
}

server {
  listen 80;
  server_name swjnxyf.cc swjnxyf.cn;

  location /.well-known/acme-challenge/ {
    root /usr/share/nginx/html;
    try_files $uri =404;
  }

  location / {
    return 301 https://$host$request_uri;
  }
}

server {
  listen 443 ssl;
  server_name swjnxyf.cc;

  ssl_certificate /etc/nginx/certs/swjnxyf.cc.crt;
  ssl_certificate_key /etc/nginx/certs/swjnxyf.cc.key;



  location / {
    proxy_pass http://swjnxyf.cc; # proxy to nginx2 container for other requests
  }
}

server {
  listen 443 ssl;
  server_name swjnxyf.cn;

  ssl_certificate /etc/nginx/certs/swjnxyf.cn.crt;
  ssl_certificate_key /etc/nginx/certs/swjnxyf.cn.key;


  location / {
    proxy_pass http://swjnxyf.cn; # proxy to nginx2 container for other requests
  }
}

这样,就可以完成基本的转发请求和对应域名的https证书了。

最后,需要进入certs文件使用openssl生产域名的证书
openssl genrsa -out swjnxyf.cn.key 2048
openssl req -new -key swjnxyf.cn.key -out swjnxyf.cn.csr
openssl x509 -req -days 365 -in swjnxyf.cn.csr -signkey swjnxyf.cn.key -out swjnxyf.cn.crt

openssl genrsa -out swjnxyf.cc.key 2048
openssl req -new -key swjnxyf.cc.key -out swjnxyf.cc.csr
openssl x509 -req -days 365 -in swjnxyf.cc.csr -signkey swjnxyf.cc.key -out swjnxyf.cc.crt

忘了,这些文件准备好以后,还需要重启nginx-proxy的服务。

我习惯于进入容器再加载,而不是重启容器

docker exec -it nginx-proxy /bin/sh

# nginx -t	//检测无误就这样
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

# nginx -s reload
2023/06/17 15:00:53 [notice] 36#36: signal process started

由于本人已经修改了win10de hosts文件,解析了所需要的域名到虚拟机的IP,所以才能实验顺利。
访问https://swjnxyf.cn/ 就OK了。提示证书风险,忽略即可。

和之前的单个服务器托管多个https证书相比,少了自动化,以及自动检测容器,生成证书以及证书续签。兴许后面可以完善。

标签:key,cn,cc,swjnxyf,nginx,域名,proxy,https
From: https://www.cnblogs.com/dayq/p/17488471.html

相关文章

  • 08. centos安装包方式安装nginx(推荐该方式)
    本地安装的nginx比较好维护,配置起来也方便,比yum的安装方式要更好的运维和使用,此篇技术贴亲测可用,实测了使用nginx代理nacos的服务器集群。一、安装各种依赖gcc安装,nginx源码编译需要yuminstallgcc-c++#PCREpcre-devel安装,nginx的http模块使用pcre来解析正......
  • nginx反向代理实现不同域名映射到同一台服务器的相同端口
    在实际应用中,我们经常会遇到多个域名需要映射到同一台服务器的相同端口的情况,这时可以使用nginx反向代理来实现。以实现将www.example.com和www.test.com都映射到127.0.0.1的80端口为例,具体步骤如下:修改hosts文件在本地hosts文件中添加以下两行:127.0.0.1www.example.com127.0.0.1......
  • Nginx 学习笔记
    概述Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强1.正向代理如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,需要通过代理服务器来访问,这种访问就称为正向代理2.反向代理客户端对代理是无感知的,因为客户端......
  • https请求报Connection reset问题
    背景:使用HttpsURLconnection或者HttpURLConnection进行https请求时,有时会报Connectionreset异常原因:这是因为客户端的TLS版本服务端不支持的原因。对于JDK1.6,支持SSLv2、SSLv3、TLSv1,默认使用TLSv1对于JDK1.7,支持SSLv2、SSLv3、TLSv1、TLSv1.1、TLSv1.2,默认使用TLSv1.1对于JDK1.8......
  • 使用tcpdump+wirkshark分析nginx反向代理无法访问问题
    问题描述在使用nginx配置多路径反向代理后端prometheus应用的时候由于prometheus本身是自动跳转到/graph才能正常访问,而使用nginx反向代理如果只是配置简单的http_proxy到后端prometheus的端口会报404错误,以下是具体的配置和报错:location/prometheus{proxy_p......
  • 使用Docker将Vite Vue项目部署到Nginx二级目录
    Vue项目配置使用Vite创建一个Vue项目,点我查看如何创建配置打包路径在Nginx中如果是二级目录,例如/web时,需要设置线上的打包路径在项目跟路径下创建两个文件:.env.production、.env.development,写入一下内容:##生产环境NODE_ENV='production'VITE_BASE_PATH=/form-design......
  • Nginx、fastCGI、http方式关系梳理
     1.介绍在linux的LNMP环境中,nginx.conf中配需要配置fastCGI,php需要安装php-fpm扩展并启动php-fpm守护进程,nginx才可以解析php脚本。那么,这样配置的背后原理是什么?nginx、fastCGI、php-fpm之间又有什么关系呢?一直有这样的疑惑,由于无法理清nginx、php-fpm之间的关系,遇到nginx解......
  • 阿里云的域名-ICP备案
    ##########################  一、阿里云的产品概览    二、购买云服务器ECS 也就是购买各种服务器,比如各种linux系统和windows系统    三、购买域名       四、ICP备案ICP备案详解:https://help.aliyun.com/document_detail/3692......
  • **使用源码部署Nginx 1.23.3的详细步骤和性能优化**
    简介:在本篇博客文章中,我们将详细介绍如何使用源码部署Nginx1.23.3,并提供一些优化措施以提升性能和安全性。将按照以下步骤进行操作:目录准备工作下载和编译Nginx源码安装Nginx配置Nginx优化Nginx性能和安全性启动Nginx服务结论1.准备工作在开始部署Nginx之前,确保你的......
  • 域名解析之递归查询VS迭代查询
    【大部分内容转自中科三方】DNS解析是互联网中的重要环节,承担着将域名翻译为可由计算机直接读取的IP地址的基础功能。根据查询对象不同DNS解析可分为递归解析和迭代解析两种方式什么是递归查询?“递归解析”是最常见也是默认的一种解析方式。在这种解析方式中,如果客户端配......