zoukankan      html  css  js  c++  java
  • python部署-nginx部署带docker的https请求

    使用带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相关信息即可

  • 相关阅读:
    用优先级队列实现先进先出队列;
    c#入门经典(第三版) 练习6.8(5)
    请给出一个时间为O(nlgk)、用来将k个已排序链表的算法。此处n为所有输入链表中元素的总数。
    计数排序
    Heap_delete(A,i)操作将结点i中的想从堆A中删去。对含n个元素的最大堆,请给出时间为O(lgn)的HEAPDELETE的实现。
    堆排序
    请给出一个算法,使之对于给定的介于0到k之间的n个整数进行预处理,并能在O(1)时间内,回答出输入的整数中有多少个落在区间[a..b]内,你给出的算法上预处理时间应是O(n+k)。
    sql存储过程传多个id查询,使用in
    SQL使用语句修改列及表名
    泛型约束使用?有些不知道叫什么好!
  • 原文地址:https://www.cnblogs.com/Se7eN-HOU/p/12719524.html
Copyright © 2011-2022 走看看