首页 > 系统相关 >Nginx https配置http的图片服务

Nginx https配置http的图片服务

时间:2023-06-25 14:22:18浏览次数:51  
标签:set http addr header Nginx proxy https remote location

1.在Nginx配置网站的https服务

 # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  localhost,10.11.1.68;

         ssl_certificate    ca.crt;
         ssl_certificate_key ca.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        #请按照以下协议配置
        ssl_protocols           TLSv1.2 TLSv1.3;

        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers             ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        location / {
            root   E:/VisualizationPlatform/;
            try_files $uri $uri/ @router;
            index  index.html index.htm;
        }
        location @router {
            rewrite ^.*$ /index.html last;
        }

        location ^~/manage/ {
               proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://10.11.1.68:6000/; #实际的接口地址
            proxy_connect_timeout 3600;
            proxy_send_timeout 3600; #设置发送超时时间
            proxy_read_timeout 3600; #设置读取超时时间
            proxy_buffer_size 64k;
            proxy_buffers 32 32k;
            proxy_busy_buffers_size 128k;
        }
        location ^~/dataSource/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.68:6001/; #实际的接口地址
        }
        location ^~/component/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.68:6002/; #实际的接口地址
        }
        location ^~/getLoopData/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.42:8161/; #实际的接口地址        
        }
        location ^~/prometheus/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.66:9000/;
        }
        location ^~/images/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass http://10.11.1.68:8087;
        }
        
    }

我的证书 ca.crt和ca.key和conf配置文件放在一个路径下了:

 

根据以上配置后访问https是好使的,但是遇到了比如详情的时候图片地址是http的,显示不了。

这里需要对图片地址服务的重新代理:

比如我的图片服务在Nginx配置如下:

# PNG SVG 
    server {
        listen       8087;
        server_name  localhost,10.11.1.68;
        location /images/ {
            alias E:/Files/;
        }
    }

通过images的前缀代理了 E盘Files下的图片资源。

需要在https的配置下做个图片服务的反向代理:

 location ^~/images/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass http://10.11.1.68:8087;
        }

全部配置如下:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    
    client_max_body_size 200m;

    #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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  3600;
    fastcgi_connect_timeout 3600;
    fastcgi_send_timeout 3600;
    fastcgi_read_timeout 3600;
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;

    #gzip  on;

    
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    server {
        listen       80;
        server_name  localhost,10.11.1.68;
        location / {
            root   E:/VisualizationPlatform/;
            try_files $uri $uri/ @router;
            index  index.html index.htm;
        }
        location @router {
            rewrite ^.*$ /index.html last;
        }

        location ^~/manage/ {
               proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://10.11.1.68:6000/; #实际的接口地址
            proxy_connect_timeout 3600;
            proxy_send_timeout 3600; #设置发送超时时间
            proxy_read_timeout 3600; #设置读取超时时间
            proxy_buffer_size 64k;
            proxy_buffers 32 32k;
            proxy_busy_buffers_size 128k;
        }
        location ^~/dataSource/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.68:6001/; #实际的接口地址
        }
        location ^~/component/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.68:6002/; #实际的接口地址
        }
        location ^~/getLoopData/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.42:8161/; #实际的接口地址        
        }
        location ^~/prometheus/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.66:9000/;
        }
    }
    server {
        listen       8080;
        server_name  localhost,10.11.1.68;
        
        location / {
            root   E:/ComponentService/;
            index  index.html index.htm;
        }
        location @router {
            rewrite ^.*$ /index.html last;
        }
        location ^~/manage/ {
               proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://10.11.1.68:6000/; #实际的接口地址
        }
        location ^~/dataSource/ {
               proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://10.11.1.68:6001/; #实际的接口地址
        }

        location ^~/component/ {
               proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://10.11.1.68:6002/; #实际的接口地址
        }
        location ^~/reportForms/ {
               proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://10.11.1.67:8077/; #实际的接口地址
        }
        location ^~/getLoopData/ {
               proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://10.11.1.42:8161/; #实际的接口地址
        }
        location ^~/images/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass http://10.11.1.68:8087;
        }
    }
    server {
        listen       8081;
        server_name  localhost,10.11.1.68;
        location /reportmis/ {
            proxy_pass  http://10.11.1.67:8800/reportmis/; #实际的接口地址
        }
    }
 
    # PNG SVG 
    server {
        listen       8087;
        server_name  localhost,10.11.1.68;
        location /images/ {
            alias E:/Files/;
        }
    }

    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  localhost,10.11.1.68;

         ssl_certificate    ca.crt;
         ssl_certificate_key ca.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        #请按照以下协议配置
        ssl_protocols           TLSv1.2 TLSv1.3;

        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers             ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        location / {
            root   E:/VisualizationPlatform/;
            try_files $uri $uri/ @router;
            index  index.html index.htm;
        }
        location @router {
            rewrite ^.*$ /index.html last;
        }

        location ^~/manage/ {
               proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://10.11.1.68:6000/; #实际的接口地址
            proxy_connect_timeout 3600;
            proxy_send_timeout 3600; #设置发送超时时间
            proxy_read_timeout 3600; #设置读取超时时间
            proxy_buffer_size 64k;
            proxy_buffers 32 32k;
            proxy_busy_buffers_size 128k;
        }
        location ^~/dataSource/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.68:6001/; #实际的接口地址
        }
        location ^~/component/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.68:6002/; #实际的接口地址
        }
        location ^~/getLoopData/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.42:8161/; #实际的接口地址        
        }
        location ^~/prometheus/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass  http://10.11.1.66:9000/;
        }
        location ^~/images/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass http://10.11.1.68:8087;
        }
        
    }
    
    server {
        listen       1443 ssl;
        server_name  localhost,10.11.1.68;

         ssl_certificate    ca.crt;
         ssl_certificate_key ca.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        #请按照以下协议配置
        ssl_protocols           TLSv1.2 TLSv1.3;

        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers             ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        location / {
            root   E:/VisualizationPlatform/;
            try_files $uri $uri/ @router;
            index  index.html index.htm;
        }
        location @router {
            rewrite ^.*$ /index.html last;
        }
        location ^~/jmgj/ {
            proxy_set_header   Host             $host;
            proxy_set_header   x-forwarded-for  $remote_addr;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_pass http://113.4.132.19:18035/;
        } 
        
        
    }
    
    

}

 

标签:set,http,addr,header,Nginx,proxy,https,remote,location
From: https://www.cnblogs.com/ckfuture/p/17502813.html

相关文章

  • Keepalived+Nginx 高可用集群架构
                                  Keepalived+Nginx高可用集群(主从模式)                                             ......
  • 【Nginx】- 优化实践
    Nginx的优化Linux安装Nginx安装依赖包//一键安装下面四个依赖gcc/zlib/prec-devel/opensslyum-yinstallgcczlibzlib-develpcre-developensslopenssl-devel因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来yuminstallgcc-c++Nginx......
  • Linux使用HTTP代码示例
    以下是使用Linux命令行发送HTTP请求的示例:1.使用curl命令发送GET请求:```curl ExampleDomain```2.使用curl命令发送POST请求:```curl-XPOST-d"param1=value1&param2=value2" ExampleDomain```3.使用wget命令发送GET请求:```wget ExampleDomain```4.使用wget命令发送POST......
  • Nginx的stub_status
    Nginx的stub_status模块是一个官方提供的一个用于实时监控Nginx服务器状态信息的模块。它通过HTTP接口提供了一个简单的页面,展示了当前Nginx服务器的关键性能指标和连接状态。启用stub_status模块后,可以通过访问特定的URL来获取Nginx的状态信息。默认情况下,该URL为http://y......
  • 一个亚马逊赞助的.Net轻量级、流行的HTTP客户端库
    我们在实际项目开发中,操作Http请求可以说是非常常见了,这里面就涉及到授权、格式转换、标头参数等,针对不同的项目,我们需要封装一个Http请求帮助类。所以,今天给大家推荐一个Http客户端库,就能完全满足我们的日常需求。 项目简介这是一个基于.Net开发的Http客户端库,它具备序列化......
  • 如何在nginx增加健康检查接口?
    在docker中部署的nginx或者在nginx部署的nginx一般是需要一个健康检查接口的 这样的话,就可以确定容器当前的状态是否是健康的 那么,如何给nginx增加一个健康检查的接口呢? 接下来呢,我们就演示一个在nginx中如何增加健康检查的接口 1、打开nginx的配置文件(nginx.conf) ......
  • k8s 创建nginx
    1、在kubenetes集群中创建一个pod创建nginx,拉取镜像kubectlcreatedeploymentnginx--image=nginx2、查看镜像是否下载成功kubectlgetpodstatus为running表示拉取完成 3、暴露Nginx端口kubectlexposedeploymentnginx--port=80--type=NodePort4、查看Nginx端口......
  • Reqable HTTP一站式开发+调试工具(小黄鸟作者另一力作、小黄鸟替代品)
    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!ReqableHTTP一站式开发+调试工具(小黄鸟作者另一力作、小黄鸟替代品)环境win10pixel4Android13概览官网......
  • 详解 HTTPS 概念
    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。HTTPS简介HTTPS其实是有两部分组成:HTTPSSL/TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传......
  • IIS 下实现http强装到https
    1、准备证书①打开IIS管理控制台,双击“服务器证书”。②在弹出的窗口中,单击右上角“导入”。③导入证书文件,注意申请证书时如果填写了密码,这里也要输入相关密码。2、绑定https,让站点可以接收http和https①右击网站站点,选择“编辑绑定”②在弹出的窗口中,单击“添加”按......