nginx部署以及反向代理多域名实现HTTPS访问

news/2025/1/16 11:11:14/

nginx部署以及反向代理多域名实现

1.nginx部署

1.1 编写nginx部署文件 docker-compose.yml

version: '3'
services: nginx:restart: always image: nginx:1.20container_name: nginx-mainports:- 80:80- 443:443volumes: # 基础配置- /opt/nginx_main/nginx-info/nginx.conf:/etc/nginx/nginx.conf# 日志文件- /opt/nginx_main/nginx-info/log:/var/log/nginx# 配置文件- /opt/nginx_main/nginx-info/conf.d/default.conf:/etc/nginx/conf.d/default.conf# 前端网页访问- /opt/nginx_main/nginx-info/html:/usr/share/nginx/html# 后期用来创建ssl证书会需要用到- /opt/nginx_main/nginx-info/ssl:/etc/nginx/ssl

2.2 创建所需文件 根据上面的路径进行创建

直接进入/opt/nginx_main/nginx-info里面创建了

cd /opt/nginx_main/nginx-info
touch nginx.conf
mkdir log
mkdir conf.d
# 进入创建的这个目录
cd conf.d
touch default.conf
cd ..
mkdir html
mkdir ssl

2.3 获取ssl证书

选择域名 然后配置免费ssl证书 证书设置我们需要的域名

然后申请之后稍等一段时间

之后点击下载,下载nginx的证书文件 一个pem,一个key

然后把下载的证书放到上面的 ssl路径 记录好位置即可,步骤 2.5会用到

1.先进入阿里云的数字证书管理服务页面 选择免费证书

2.点击创建证书

之后会出现一条记录 显示待申请

3.配置证书

输入要使用的域名
在这里插入图片描述

4.确认完成之后返回,看到有记录了,就点击下载

在这里插入图片描述

因为我们用的是nginx代理,所以选择nginx下载

在这里插入图片描述

下载解压之后就是我们需要的文件了,一个pem,一个key

2.4 编辑nginx.conf

user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {worker_connections  1024;
}
http {include       /etc/nginx/mime.types;default_type  application/octet-stream;# types {#    application/javascript   js;# }log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}

2.5 编辑default.conf

# 前端服务代理
server {listen       80;listen  [::]:80;# 设置域名server_name  aa.bb.baiding.com;# 代理域名return 301 https://aa.bb.baiding.com;
}
server {listen 443 ssl; server_name aa.bb.baiding.com;# 配置ssl证书 2.3 步骤说的证书的位置 详细到指定的文件名ssl_certificate /etc/nginx/ssl/aa.bb.baiding.com.pem;  ssl_certificate_key /etc/nginx/ssl/aa.bb.baiding.com.key; # 其他配置ssl_session_timeout 5m;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_session_cache shared:SSL:1m;fastcgi_param  HTTPS        on;fastcgi_param  HTTP_SCHEME     https;# 代理配置location / {proxy_set_header   X-Real-IP         $remote_addr;proxy_set_header   Host              $http_host;proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;# 访问路径root   /usr/share/nginx/html/dev;index  index.html index.htm;try_files  $uri $uri/ /index.html;add_header Access-Control-Allow-Origin * always;}
}
# 后端服务代理
server {listen       80;listen  [::]:80;# 设置域名server_name  api.bb.baiding.com;# 代理https域名return 301 https://api.bb.baiding.com;
}
server {listen 443 ssl; server_name api.bb.baiding.com;# 配置ssl证书ssl_certificate /etc/nginx/ssl/api.bb.baiding.com.pem;  ssl_certificate_key /etc/nginx/ssl/api.bb.baiding.com.key; ssl_session_timeout 5m;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_session_cache shared:SSL:1m;fastcgi_param  HTTPS        on;fastcgi_param  HTTP_SCHEME     https;# 路径代理配置location / {proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_cache_bypass $http_upgrade;# 反向代理的路径proxy_pass  http://111.11.111.123:8081;}
}

2.6 启动nginx

docker-compose -f docker-compose.yml up -d

http://www.ppmy.cn/news/1006484.html

相关文章

SpringBoot项目-个人博客系统的实现【下】

10.实现强制要求登陆 当用户访问 博客列表页和 博客详情页时, 如果用户当前尚未登陆, 就自动跳转到登陆页面 1.添加拦截器 public class LoginInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletRespon…

flink1.17 json_tuple udf 实现

使用效果 思路: flink1.17要求复杂类型必须通过hint指定每个字段类型, 只有固定个数,都是基础类型的flink才能自动推断. 这就导致json_tuple返回不定长参数无法搞定. 所以这里通过返回字符串数组来解决. 同时带来新的问题: 数组元素类型一样,导致fastjson2解析到的int也需要…

抖音seo矩阵系统源码搭建开发详解

抖音SEO矩阵系统是一个用于提高抖音视频在搜索引擎排名的工具。如果你想开发自己的抖音SEO矩阵系统,以下是详细的步骤: 开发步骤详解: 确定你需要的功能和算法 抖音SEO矩阵系统包含很多功能,比如关键词研究、内容优化、链接建设、…

【maven】构建项目前clean和不clean的区别

其实很简单,但是百度搜了一下,还是没人能简单说明白。 搬用之前做C项目时总结结论: 所以自己在IDE里一遍遍测试程序能否跑通的时候,不需要clean,因为反正还要改嘛。 但是这个项目测试好了,你要打成jar包给…

洛谷P1525 关押罪犯(种类并查集)

S 城现有两座监狱,一共关押着 $N$ 名罪犯,编号分别为 $1-N$ 。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的…

RTT(RT-Thread)时钟管理

目录 时钟管理 时钟节拍 RTT工程目录结构介绍 配置文件:rtconfig.h 获取系统节拍 获取系统节拍数函数 实例 定时器 RT_Thread定时器介绍 定时器源码分析(了解即可) rt_system_timer_init (硬件定时器初始化) rt_system_timer_thr…

【Linux】内核线程创建 kthread_run 函数和内核中断

kthread_run函数详解 以PCIE的热插拔内核线程创建为例说明 注意:内核线程和RTOS的线程略有不同,这里Linux上创建以后直接运行,RTOS上有的是需要加入到调度队列中后才会执行,比如RT-Thread的系统 kthread_run 是 Linux 内核中的…

答辩PPT怎么做?在线PPT软件哪个好?

又是一年毕业季,相信很多毕业生都开始准备论文答辩,有些同学正在为论文奋夜苦战,有些则是为论文答辩PPT而烦恼。做PPT要用什么软件好呢?这篇文章就来告诉你。 当下有很多PPT制作工具,其中自然也包括Office三件套。这些…