使用带docker的服务器配置https需要两层web服务器

首先例如使用https://www.Se7eN_HOU.com进行首页访问,首先会先进入到主服务器里面,经过主服务器的Nginx Web服务器,进行web服务。这时主服务器的nginx就会监听80端口,收到这个请求

 server {
# 监听80端口
listen 80;
# 监听的域名,
server_name www.Se7eN_HOU.com;
# 重定向到443端口
rewrite ^(/.*)$ https://www.Se7eN_HOU.com$1 permanent; location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
# 如果方位80端口,跳转到本地的8888端口程序
proxy_pass http://127.0.0.1:8888;
}
}

因为这里我们服务器上安装了docker,而我们的后台代码在docker里面,而8888端口映射docker里面的80端口,所以 proxy_pass http://127.0.0.1:8888;这一句配置的作用就将请求专项到127.0.0.1:8888映射docker里面的80端口,因为有

 rewrite ^(/.*)$ https://www.Se7eN_HOU.com$1 permanent;

这一句配置,所有其实请求80端口的已经先转到了443端口,我们还需要对主服务器443端口配置

server {
# https 默认的是443端口,其实ssl是安全证书
listen 443 ssl;
# 监听的域名
server_name www.Se7eN_HOU.com;
# 设置从ssl证书网站上下载的证书
ssl_certificate /usr/local/nginx/ssl/www.Se7eN_HOU.com_bundle.pem;
# 设置从ssl证书网站上下载的证书
ssl_certificate_key /usr/local/nginx/ssl/www.Se7eN_HOU.com.key;
# 对请求的设置
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
# 设置请求重定向到127.0.0.1:8888端口,即我们的docker里面
proxy_pass http://127.0.0.1:8888;
}
}

这样设置完毕以后这个请求就通过主服务器的nginx先从80端口,转到443端口,进过证书的配置选项后,在转到8888端口的docker中,而主服务器的8888端口对应docker中的80端口,这样经过一系列的转化,这个请求就到了我们docker中的80端口了,下面我们在docker中的nginx中监听80端口,即可得到这个的请求

 server {
listen 80; # 因为这个内部的nginx80端口是通过主服务器nginx的127.0.0.0:8888过来的,所以server_name写localhost 即可
server_name localhost;
#charset koi8-r; #access_log logs/host.access.log main;
#access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
# 主页的配置
location / {
root /opt/www/singtec;
index index.html index.htm;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
# api请求的配置
location /api{
# 导入uwsgi文件
include /usr/local/nginx/conf/uwsgi_params;
# 使用uwsgi启动python后端代码,提供api请求
uwsgi_pass 0.0.0.0:8000; }
}

注意:带有docker容器的服务器,主要在主服务器的nginx上配置https相关配置即可,docker服务器上的nginx主要配置uwsgi相关信息即可

python部署-nginx部署带docker的https请求的更多相关文章

  1. 08 部署nginx web服务器(转发fastDFS请求)

    先准备两个文件: fastdfs-nginx-module-master.tar.gz:fastDFS nginx安装包 nginx-1.17.3.tar.gz:nginx安装包 注:这两个包文件要匹 ...

  2. python接口自动化(十二)--https请求(SSL)(详解)

    简介 本来最新的requests库V2.13.0是支持https请求的,但是一般写脚本时候,我们会用抓包工具fiddler,这时候会 报:requests.exceptions.SSLError: [ ...

  3. 09 部署nginx web服务器(转发uwsgi请求)

    1 配置nginx转发 $ whereis nginx $ cd /usr/local/nginx/conf $ vi nginx.conf 注释掉原来的html请求,增加uwsgi请求. locat ...

  4. Python 2.7.x 使用Requests发起https请求时报Warning的问题

    warning :如下 /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py:852: ...

  5. python接口自动化测试四:代码发送HTTPS请求

    HTTPS: get: url = 'https://www.juhe.cn/docs/api/id/39' r = requests.get(url)                       # ...

  6. Docker 06 部署Nginx

    参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...

  7. python https请求报错:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]

    python爬虫,使用requests库发送https请求报错:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 解决方法: imp ...

  8. 使用docker部署nginx并配置https

    我只有一台服务器,但我想在这台服务器上运行多个项目,怎么办? 总不能靠加端口区分吧? 百度和Google是个好东西,于是我找到了答案,使用nginx. 通过nginx,我可以给我的一台服务器配置两个域 ...

  9. 本地部署 Misago Docker + 配置 HTTPS 笔记

    最近答应帮朋友做个论坛网站,想借此机会捡起 Python 在 GitHub 找了一圈,打算借用以 Python+Django 开发的 Misago 这个论坛系统 由于作者在今年更新的 Misago 0 ...

  10. 在Docker下部署Nginx

    在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...

随机推荐

  1. mysql8 CentOS7 简要安装说明

    1. 卸载mariadb rpm -qa |grep mariadb |xargs yum remove -y比较简单的卸载办法. 2. 安装所有的rpm包. yum localinstall *.r ...

  2. K8S 知识点

    1. K8S集群大小 在 v1.7 版本中,Kubernetes 支持集群节点(node)数可达1000个.更具体地说,我们配置能够支持所有如下条件: 不超过2000个节点 不超过总共6000个 po ...

  3. It is currently in use by another Gradle instance

    FAILURE: Build failed with an exception. * What went wrong: Could not create service of type TaskHis ...

  4. justify-content: space-between能够对齐的解决办法

    解决办法一 .main{ display: flex; justify-content: space-around; flex-wrap: wrap; } .son{ width:100px } // ...

  5. 【JS 逆向百例】网洛者反爬练习平台第六题:JS 加密,环境模拟检测

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...

  6. minIO系列文章02---linux安装

    目录 1.Minio介绍 2.安装MinIO 3. MinIO客户端 1.Minio介绍MinIO 是一个基于Apache License v2.0开源协议的对象存储服务.适合于存储大容量非结构化的数 ...

  7. Mysql 8.0前后,实现创建用户,指定用户只能访问指定的数据库中的表

    最近在做公司项目的过程中,出现了这样的需求.第三方系统需要将数据写到我们的业务系统中,由于目前这些数据没有实际的使用场景,在讨论下,为简单快捷,选择第二种方案,即不书写接口,第三方系统通过数据库直接将 ...

  8. #region在多种编程语言及IDE中进行代码折叠,包括python msvc++ c#等

    vs/rider中折叠C#代码 在写C#的时候,在visual studio中可以使用#region和#endregion来进行代码折叠,那么在pycharm中是否可以呢? //这里有很多的代码... ...

  9. TienChin-课程管理-创建工程

    创建方式与之前一样,如下奉上 generateCourse 代码. @Test void generateCourse() { String path = "E:\\Desktop\\Tie ...

  10. Python 检测PE所启用保护方式

    Python 通过pywin32模块调用WindowsAPI接口,实现对特定进程加载模块的枚举输出并检测该PE程序模块所启用的保护方式,此处枚举输出的是当前正在运行进程所加载模块的DLL模块信息,需要 ...