nginx一个端口服务多个网页(带cdn)

缘起

大学的时候买了一个阿里云的小鸡,一直续费在现在,上面跑了不少服务(trilium note,worldpress,calibre),但是服务器的网速非常低。

最近听说cdn的加速功能,先尝尝能不能给我的服务器提点速。

如果不喜欢听故事 直接跳转到 nginx反向代理多个域名

在此之前我的配置

很早的时候我还不会给网站加https,我的服务在公网上以http跑了两年多,后面是在忍不了,给服务器买了个域名(以前一直没域名,用ip访问😀) 然后开启了我的https配置之旅.

其中最恶心的是worldpress。我的worldpress是用docker搭建的,worldpress的ssl实现是用apatch做的,它在docker里面跑了一个apatch,我去容器里面给他配了一个apatch🤮.

有了域名之后,我的三个服务以不同的端口跑在我的服务器上,访问的时候都是带着端口访问的(当然我是认为没什么问题,就是不那么好看).

第一次尝试

两个月前其实就尝试过给网站套cf的cdn,但是一直没成功(因为我用的不是443端口),无论我怎么尝试,套了cdn之后就一直是http能访问,https访问的时候会之际把我的端口抹除,没有s我怎么忍得了,所以第一次尝试失败了

nginx反向代理多个域名

为了使我的三个服务都用443端口,然后在用cdn对443端口进行加速

把域名交给cf托管

这里我就不教cf怎么托管域名,网上都有 托管了之后,我们可以在cf里面添加域名解析 那么我分别为我的三个域名申请了3个域名

  • blog.domain.com

  • note.domain.com

  • lib.domain.com

这三个域名解析的地址都是我服务器的地址

以上只是举例

cf

注意点亮右边的小彩云(表示开启cf的cdn加速)

写nginx的配置文件

nginx怎么运做的我这里就不介绍了(不会的可以搜索一下nginx的配置文件怎么写,写好了放那儿,怎么开启nginx,怎么重载nginx的配置文件)

这里给出gpt给我的配置文件

```

# 第一个网站的配置,代理到 localhost:3001  # 假设我的3001是图书馆的服务地址
server {
   listen 443 ssl;
   server_name lib.domain.com; # 图书观的域名

   # SSL 证书
   ssl_certificate /etc/nginx/ssl/example1.com.crt;
   ssl_certificate_key /etc/nginx/ssl/example1.com.key;

   location / {
       proxy_pass http://localhost:3001; # 代理到本地的 3001 端口
       proxy_set_header Host $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;
  }
}

# 第二个网站的配置,代理到 localhost:3002   # 假设是我的博客
server {
   listen 443 ssl;
   server_name blog.domain.com;

   # SSL 证书
   ssl_certificate /etc/nginx/ssl/example2.com.crt;
   ssl_certificate_key /etc/nginx/ssl/example2.com.key;

   location / {
       proxy_pass http://localhost:3002; # 代理到本地的 3002 端口
       proxy_set_header Host $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;
  }
}
server {
   listen 443 ssl;
   server_name lib.domain.com; # 图书观的域名

   # SSL 证书
   ssl_certificate /etc/nginx/ssl/example1.com.crt;
   ssl_certificate_key /etc/nginx/ssl/example1.com.key;

   location / {
       proxy_pass http://localhost:3001; # 代理到本地的 3001 端口
       proxy_set_header Host $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;
  }
}

# 第二个网站的配置,代理到 localhost:3002   # 假设是我的博客
server {
   listen 443 ssl;
   server_name blog.domain.com;

   # SSL 证书
   ssl_certificate /etc/nginx/ssl/example2.com.crt;
   ssl_certificate_key /etc/nginx/ssl/example2.com.key;

   location / {
       proxy_pass http://localhost:3002; # 代理到本地的 3002 端口
       proxy_set_header Host $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;
  }
}

```

关于上面的配置 正常情况没有多少要修改的

  • server_name: 这里写你在cf上申请的域名

  • ssl_certificate: 证书的路径,一般情况你需要去购买证书,但是使用cf做cdn 你可以使用cf中的证书(也可以自己生成证书,只需要把cf里面的ssl安全等级开到完全如下图) ssl

    • 使用cf中的证书: 在这个页面为你的域名申请证书(如果不懂就老老实实用完全模式 或者自己买证书)

      服务器证书

  • proxy_pass: 这里填我们真正服务的地址

这时我们访问lib.domain.com 就会被nginx路由到 http://localhost:3001

访问 blog.domain.com 就会被nginx路由到 http://localhost:3002

缘散

至此,在同一个服务器的443端口开启了多个网页,但是在访问的时候我们用的是不同的域名.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/794304.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dotnet 读 WPF 源代码笔记 从 WM_POINTER 消息到 Touch 事件

本文记录我读 WPF 源代码的笔记,在 WPF 底层是如何从 Win32 的消息循环获取到的 WM_POINTER 消息处理转换作为 Touch 事件的参数由于 WPF 触摸部分会兼顾开启 Pointer 消息和不开启 Pointer 消息,为了方便大家理解,本文分为两个部分。第一个部分是脱离 WPF 框架,聊聊一个 W…

Cisco ACI Simulator 6.0(7e)M 发布下载,新增功能简介

Cisco ACI Simulator 6.0(7e)M 发布下载,新增功能简介Cisco ACI Simulator 6.0(7e)M - ACI 模拟器 Application Centric Infrastructure (ACI) Simulator Software 请访问原文链接:https://sysin.org/blog/cisco-acisim-6/,查看最新版。原创作品,转载请保留出处。 作者主页…

51nod 1274 最长递增路径

因为边权递增,按最小生成树的顺序 dp,设状态 \(dp[i]\) 为 \(i\) 点的最长路径长度,但是需要单调递增,所以考虑可以同时更新(先将原dp数组储存下来,再用新数组的值更新原 dp 数组),答案为 \(max(dp[i])\)。 #include<bits/stdc++.h> using namespace std; #defin…

读软件设计的要素05概念的特性

概念的特性1. 概念的特性 1.1. 专一性原则(specificity principle)认为概念与目的应该一一对应1.1.1. 专一性原则已被证明是概念设计中最有用的原则之一1.1.2. 一个概念最多只能满足一个目的1.2. 很少有没有目的的概念1.2.1. 如果本应隐藏的用户机制被暴露,可能会产生没有目的…

有意思、有趣的文字

苦难既然把我推到了悬崖的边缘,那么就让我在这悬崖边坐下来,顺便看看悬崖下的流岚雾霭,唱支歌给你听。       —— 史铁生《我与地坛》罗翔说:“珍惜你的低谷期,你会看到很多真相。时间能渡的都是愿意自渡的人,没有谁的人生一帆风顺,低谷期的苦难,就是为了积蓄力…

宝可梦gba改版教程/口袋妖怪gba改版教程

背景 心血来潮玩了一些改版,感觉不太人性化,于是想要去稍微学学。 过程 劝退 可以说是非常劝退,gba改版非常的不人性化,比如汇编语言asm,改版工具不支持中文之类的。没有成体系的教程 这是口袋资源吧的教程汇总,虽然看上去很详细,但是其实还是蛮零散的,而且由于贴吧的一…

414周赛第三题 - 3282. 到达数组末尾的最大得分

题目链接 3282. 到达数组末尾的最大得分思路 转换为“矩阵面积”;贪心解决题解链接 【一图秒懂】贪心(Python/Java/C++/Go)关键点时间复杂度 \(O(n)\)空间复杂度 \(O(1)\)代码实现: class Solution:def findMaximumScore(self, nums: List[int]) -> int:answer = maxv =…

使用 Microsoft.Extensions.ServiceDiscovery 进行服务发现并调用

简介 在现代微服务架构中,服务发现(Service Discovery)是一项关键功能。它允许微服务动态地找到彼此,而无需依赖硬编码的地址。以前如果你搜 .NET Service Discovery,大概率会搜到一大堆 Eureka,Consul 等的文章。现在微软为我们带来了一个官方的包:Microsoft.Extension…

第19篇 Protocol Buffers 编译器生成proto文件

1.下载 Protocol Buffers 编译器(protoc) 前往 Protocol Buffers GitHub Releases 页面。在 "Assets" 下找到适合您系统的压缩文件,通常为 protoc-{version}-win32.zip 或 protoc-{version}-win64.zip,其中 {version} 是版本号。2.解压缩 Protoc 编译器 创建一个…

Zlibrary镜像站官方网址的使用教程

Zlibrary的使用说明: 手机端 步骤一、以苹果浏览器为例,打开Z-library镜像站,搜索自己的图书,注册登录之后选择EPUB格式下载步骤二、手机打开下载的文件,即可正常阅读。电脑端 步骤一,如下图所示, 打开Zlibrary官网搜索电子书,点击自己需要的图书步骤二,如下图所示, 在…

Python实现批量提取视频

前言 最近在玩整nas,但是之前把视频和照片都上传到immich了,因为我可以直接在手机中上传照片,但是因为手机内存不够就把视频全删了的,现在只需要把视频下载下来上传到nas中就OK。但是现在问题是immich这东西不支持批量删选视频,只能全选照片和视频,而且一共有50个G的照片…

边缘计算平台:为客户端提供更快、更可靠的应用响应!

边缘计算平台是一种基于云计算技术的辅助计算系统。它可以在数据源的边缘(例如传感器、IoT设备等)进行数据的处理和分析,从而为客户端提供更快、更可靠的应用响应。与传统的云计算模式相比,边缘计算平台更加灵活和实时,它通过在分布式的边缘设备上进行计算,可以大大减少由…