Nginx应用与运维——Nginx代理服务应用实战(HTTP代理)

Nginx 正向代理与反向代理:核心区别与配置方法 在 Nginx 的常用场景中,正向代理与反向代理是两大核心应用,但二者的作用对象、使用场景及配置逻辑存在本质差异。本文将从核心区别入手,结合实操配置案例,帮你彻底理清 Nginx 正反向代理的应用逻辑,快速落地技术方案。Nginx 正向代理聚焦 “客户端侧”,解决 “客户端如何访问目标服务” 的问题;反向代理聚焦 “服务端侧”,解决 “客户端如何高效、安全访问后端集群” 的问题。二者核心配置逻辑围绕 “代理对象” 展开,正向代理需配置 DNS 解析与客户端权限,反向代理需配置后端集群与负载均衡。 阅读详情

1、HTTP代理

代理功能根据应用方式的不同可以分为正向代理和反向代理。正向代理是客户端设置代理地址后,以代理服务器的IP作为源IP访问互联网应用服务的代理方式;反向代理则是客户端直接访问代理服务器,代理服务器再根据客户端请求的主机名、端口号及URI路径等条件判断后,将客户端请求转发到应用服务器获取响应数据的代理方式。

1.1、模块指令

Nginx的HTTP代理功能是通过ngx_http_proxy_module模块实现的,该模块会被默认构建,无须特殊配置编译参数。配置指令如表所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • ngx_http_proxy_module模块与缓存相关指令请参见第7章。
  • 在ngx_http_proxy_module模块指令列表中,除proxy_pass指令以外,其余指令使用的指令域范围都是http、server或location。
  • 缓冲区的大小默认为操作系统中单个内存页的大小,在CentOS下可通过如下命令查询:
    getconf PAGE_SIZE
    
  • proxy_next_upstream指令值中,当non_idempotent参数启用时,请求方法POST、LOCK、PATCH在出现错误时,也可以向下一个服务器重复提交。

1.2、正向代理

正向代理是客户端设置代理地址后,通过将代理服务器的IP作为源IP访问互联网应用服务的代理方式。通过对正向代理访问设置,可以实现限制客户端的访问行为、下载速度、访问记录统计、隐藏客户端信息等目的。实现原理如图所示。

在这里插入图片描述

1.2.1、HTTP的正向代理

Nginx的proxy模块可以实现基础的HTTP代理功能。配置样例如下:

map $host $deny {
     hostnames;
     default 0;
     www.google.com 1;                             # 禁止访问www.google.com
}

server {
    listen 8080;
    resolver 114.114.114.114;
    resolver_timeout 30s;
    access_log logs/proxy_access.log;              # 记录访问日志
    location / {

        if ( $deny ) {
            return 403;                            # 被禁止访问的网址返回403错误
        }
        proxy_limit_rate    102400;                # 限制客户端的下载速率是100KB/s
        proxy_buffering on ;                       # 启用代理缓冲
        proxy_buffers   8 8k;                      # 代理缓冲区大小为64KB
        proxy_buffer_size   8k;                    # 响应数据第一部分的缓冲区大小为8KB
        proxy_busy_buffers_size 16k;               # 向客户端发送响应的缓冲区大小16KB
        proxy_temp_file_write_size  16k;           # 一次写入临时文件的数据大小为16KB

        # 设置所有代理客户端的agent
        proxy_set_header User-Agent "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" ;

        proxy_set_header Host $http_host;
        proxy_connect_timeout   70s;               # 代理连接超时时间
        proxy_http_version  1.1;                   # 代理协议为http/1.1
        proxy_pass $scheme://$http_host$request_uri; # 代理到远端服务器
    }
}
1.2.2、HTTPS的正向代理

Nginx默认不支持HTTP的CONNECT方法,所以无法实现HTTPS的正向代理的功能,若要实现Nginx的HTTPS的正向代理功能,需要添加一个第三方模块ngx_http_proxy_connect_module,实现HTTPS的正向代理支持。对于该模块,官网提示可支持到Nginx 1.15.8版本,但实测Nginx的1.17.0版本也可以编译通过。模块配置指令如表所示。

在这里插入图片描述
proxy_connect模块指令使用的指令域范围为server。模块编译如下:

yum -y install patch
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
cd nginx
patch -p1 < ../ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_101504.patch
./configure --add-module=../ngx_http_proxy_connect_module

配置样例如下:

server {
    listen 8080;
    resolver 114.114.114.114;
    resolver_timeout 30s;
    access_log logs/proxy_access.log             # 记录访问日志

    proxy_connect;                               # 启用HTTP的CONNECT方法支持
    proxy_connect_allow            all;          # 允许所有端口
    proxy_connect_connect_timeout  60s;          # 与互联网网站建立连接的超时时间

    location / {
        proxy_buffering on ;                     # 启用代理缓冲
        proxy_buffers   8 8k;                    # 代理缓冲区的大小为64KB
        proxy_buffer_size   8k;                  # 响应数据第一部分的缓冲区的大小为8KB
        proxy_busy_buffers_size 16k;             # 向客户端发送响应的缓冲区的大小16KB
        proxy_limit_rate    102400;              # 限制客户端的下载速率是100KB/s
        proxy_temp_file_write_size  16k;         # 一次写入临时文件的数据大小为16KB

        # 设置所有代理客户端的agent
        proxy_set_header    User-Agent “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14” ;

        proxy_set_header Host $host;
        proxy_connect_timeout   70s;             # 代理连接
        proxy_http_version  1.1;                 # 代理协议为http/1.1
        proxy_pass $scheme://$http_host$request_uri;# 代理到远端服务器
    }
}

## 本地测试
curl -x 127.0.0.1:8080  https://www.baidu.com

各浏览器可以通过代理功能配置使用Nginx代理服务器访问互联网服务器。

1.3、HTTP的反向代理

反向代理是用户客户端访问代理服务器后,被反向代理服务器软件按照一定的规则从一个或多个被代理服务器中获取响应资源并返回给客户端的代理模式,客户端只知道代理服务器的IP,并不知道后端服务器的IP,原因是代理服务器隐藏了被代理服务器的信息。因为编写Nginx的反向代理配置时,被代理服务器通常会被编写在upstream指令域中,所以被代理服务器也被称为上游服务器。实现原理如图所示。

在这里插入图片描述
为方便反向代理的配置,此处把通用的代理配置写在proxy.conf文件中。在使用时,通过主配置文件nginx.conf用include指令引入。文件proxy.conf的内容如下:

cat >proxy.conf<<EOF

proxy_buffering on;           # 启用响应数据缓冲区
proxy_buffers 8 8k;           # 设置每个HTTP请求读取上游服务器响应数据缓冲区的大小为64KB
proxy_buffer_size 8k;         # 设置每个HTTP请求读取响应数据第一部分缓冲区的大小为8KB
proxy_busy_buffers_size 16k;  # 接收上游服务器返回响应数据时,同时用于向客户端发送响应的缓
                              # 冲区的大小为16KB
proxy_limit_rate 0;           # 不限制每个HTTP请求每秒读取上游服务器响应数据的流量
proxy_request_buffering on;   # 启用客户端HTTP请求读取缓冲区功能
proxy_http_version 1.1;       # 使用HTTP 1.1版本协议与上游服务器建立通信
proxy_connect_timeout 5s;     # 设置与上游服务器建立连接的超时时间为5s
proxy_intercept_errors on;    # 拦截上游服务器中响应码大于300的响应处理
proxy_read_timeout 60s;       # 从上游服务器获取响应数据的间隔超时时间为60s
60sproxy_send_timeout 60s;    # 向上游服务器发送请求的间隔超时时间为60s

# 设置发送给上游服务器的头属性字段Host为客户端请求头头字段Host的值
proxy_set_header   Host              $host:$server_port;

# 设置发送给上游服务器的头属性字段Referer为客户端请求头头字段的值Host
proxy_set_header   Referer           $http_referer;
             
# 设置发送给上游服务器的头属性字段Cookie为客户端请求头头字段的值Host
proxy_set_header   Cookie            $http_cookie;

# 设置发送给上游服务器的头属性字段X-Real-IP为客户端的IP
proxy_set_header   X-Real-IP         $remote_addr;

# 设置发送给上游服务器的头属性字段X-Forwarded-For为客户端请求头的X-Forwarded-For的
# 值,如果没有该字段,则等于$remote_addr
proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;

# 设置发送给上游服务器的头属性字段X-Forwarded-Proto为请求协议的值
proxy_set_header   X-Forwarded-Proto $scheme;   
                    
EOF

在nginx.conf的http指令域中引入该文件,配置样例如下:

http {
    ...
    include proxy.conf
    include conf.d/*.conf
}

Nginx的指令支持在指令域中对上级指令域指令的继承和修改,若对proxy.conf有特殊配置需求的,可在对应的server指令域中添加同名指令。

反向代理的配置样例如下:

server {
    listen       8088;
    access_log  logs/proxy.access.log  main;
    
    tcp_nodelay off;                 # 因启用缓冲区功能,所以关闭立刻发送功能

    location ~ ^/ {
        proxy_force_ranges on;       # 强制启用字节范围请求支持
        proxy_pass   http://192.168.2.145:8082;
        break;
    }
}

1.4、HTTPS的反向代理

HTTPS通过加密通道保护客户端与服务端之间的数据传输,已成为当前网站部署的必选配置。在部署有Nginx代理集群的HTTPS站点,通常会把SSL证书部署在Nginx的服务器上,然后把请求代理到后端的上游服务器。这种部署方式由Nginx服务器负责SSL请求的运算,相对减轻了后端上游服务器的CPU运算量,这种方式也被称为SSL终止(SSL Termination)。因Nginx启用了对TSL SNI(ServerName Identification)技术的支持,所以在同一服务器上可以安装多个绑定不同域名的SSL证书,使其可以在Nginx服务器上统一部署,同时也极大地方便了证书的管理和维护。

由Nginx服务器实现SSL终止的HTTPS的反向代理的常见方式有两种,一种是由Nginx通过HTTP方式与被代理服务器建立连接;另一种是由Nginx通过HTTPS方式与被代理服务器建立连接。由Nginx通过HTTP方式与被代理服务器建立连接的部署方式为客户端→Nginx服务器(HTTPS)→上游服务器(HTTP),配置样例如下:

server {
    listen 443 ssl;
    server_name www.nginxbar.org;
    charset utf-8;
    access_log  logs/sslproxy.access.log  main;
    
    tcp_nodelay off;                           # 因启用缓冲区功能,所以关闭立刻发送功能

    ssl_certificate ssl/www_nginxbar_org.pem;    # 网站证书文件
    ssl_certificate_key ssl/www_nginxbar_org.key; # 网站证书密钥文件

    ssl_session_cache shared:SSL:10m;          # 会话缓存的存储大小为10MB
    ssl_session_timeout  10m;                       # 会话缓存的超时时间为10分钟
    ssl_session_tickets on;                         # 设置会话凭证为会话缓存机制
    ssl_session_ticket_key  ssl/session_ticket.key; # 设置会话凭证密钥文件

    location ~ ^/ {
        proxy_pass   http://192.168.2.145:8082;
        break;
    }
}

按照上面的配置,Nginx服务器与后端的上游服务器之间仍然采用的是HTTP透明传输,虽然可以与上游服务器部署在同一内网,但数据传输仍是不安全的。为了提高传输安全性,建议在上游服务器也开启HTTPS协议,实现全链路的安全数据传输。由Nginx通过HTTPS方式与被代理服务器建立连接的配置样例场景如下。

在配置样例的场景中有两个HTTPS节点,为方便举例说明配置指令的功能及配置指令中所用的SSL证书的区别,共设计了3个SSL证书并通过自签证书的方式进行签发,部署方式如图所示。
在这里插入图片描述

  • www.nginxbar.org证书为对外网站的域名证书,用于给用户提供身份验证。
  • backend.nginxbar.org证书为被代理服务器的域名证书,用于给Nginx服务器提供身份验证。
  • proxy.nginxbar.com证书为Nginx服务器的域名证书,用于给被代理服务器提供身份验证。

自签证书命令如下:

# 生成自建根域nginxbar.org证书
openssl req -new -x509 -out /etc/nginx/conf/ssl/root.pem -keyout
/etc/nginx/conf/ssl/root.key -days 3650 -subj
"/C=CN/ST=Shanghai/L=Shanghai/O=nginxbar/OU=admin/CN=nginxbar.org/emailAddress= admin@nginxbar.org"

# 域名www.nginxbar.org生成请求文件,面向用户端的域名请求文件
openssl req -out /etc/nginx/conf/ssl/www_nginxbar_org.csr -new -sha256
-newkey rsa:2048 -nodes -keyout /etc/nginx/conf/ssl/www_nginxbar_org.key
-subj
"/C=CN/ST=Shanghai/L=Shanghai/O=nginxbar/OU=www/CN=www.nginxbar.org/emailAddress= www@nginxbar.org"

# 颁发自签域名www.nginxbar.org证书,面向用户端的域名证书
openssl x509 -req -in /etc/nginx/conf/ssl/www_nginxbar_org.csr -out
/etc/nginx/conf/ssl/www_nginxbar_org.pem -CA /etc/nginx/conf/ssl/root.pem 
-CAkey /etc/nginx/conf/ssl/root.key  -CAcreateserial -days 3650

# 域名backend.nginxbar.org生成请求文件,后端上游服务器的SSL请求文件
openssl req -out /etc/nginx/conf/ssl/backend_nginxbar_org.csr -new -sha256
-newkey rsa:2048 -nodes -keyout 
/etc/nginx/conf/ssl/backend_nginxbar_org.key -subj 
"/C=CN/ST=Shanghai/L=Shanghai/O=nginxbar/OU=backend/CN=backend.nginxbar.org/emailAddress=backend@nginxbar.org"

# 颁发自签域名backend.nginxbar.org证书,后端上游服务器的SSL证书
openssl x509 -req -in /etc/nginx/conf/ssl/backend_nginxbar_org.csr -out 
/etc/nginx/conf/ssl/backend_nginxbar_org.pem -CA 
/etc/nginx/conf/ssl/root.pem -CAkey /etc/nginx/conf/ssl/root.key
-CAcreateserial -days 3650

# 生成自建根域nginxbar.com证书,该域名仅为方便区分代理端和后端证书使用,实际使用时可以使用一个根证书
openssl req -new -x509 -out /etc/nginx/conf/ssl/proxy_root.pem -keyout 
/etc/nginx/conf/ssl/proxy_root.key -days 3650 -subj 
"/C=CN/ST=Shanghai/L=Shanghai/O=nginxbar/OU=admin/CN=nginxbar.com/emailAddress= admin@nginxbar.com"

# 域名proxy.nginxbar.com生成请求文件,Nginx服务器的SSL代理请求文件
openssl req -out /etc/nginx/conf/ssl/proxy_nginxbar_com.csr -new -sha256 
-newkey rsa:2048 -nodes -keyout /etc/nginx/conf/ssl/proxy_nginxbar_com.key 
-subj “/C=CN/ST=Shanghai/L=Shanghai/O=nginxbar/OU=proxy/CN=proxy.nginxbar.com
/emailAddress=proxy@nginxbar.com”

# 颁发自签域名proxy.nginxbar.com证书,Nginx服务器的SSL代理证书
openssl x509 -req -in /etc/nginx/conf/ssl/proxy_nginxbar_com.csr -out 
/etc/nginx/conf/ssl/proxy_nginxbar_com.pem -CA 
/etc/nginx/conf/ssl/proxy_root.pem -CAkey 
/etc/nginx/conf/ssl/proxy_root.key  -CAcreateserial -days 3650

Nginx代理服务器的配置如下:

resolver 114.114.114.114 valid=300s;              # DNS服务器地址
resolver_timeout 5s;                              # DNS解析的超时时间为5s

server {
    listen      443 ssl;
    server_name www.nginxbar.org;
    access_log  logs/sslproxy2_access.log  main;

    ssl_certificate ssl/www_nginxbar_org.pem;     # 网站www.nginxbar.org证书文件
    ssl_certificate_key ssl/www_nginxbar_org.key; # 网站www.nginxbar.org证书密钥文件

    ssl_session_cache shared:SSL:10m;             # 会话缓存的存储大小为10MB
    ssl_session_timeout  10m;                     # 会话缓存的超时时间为10分钟
    ssl_session_tickets on;                       # 设置会话凭证为会话缓存机制
    ssl_session_ticket_key  ssl/session_ticket.key;  # 设置会话凭证密钥文件

    location / {
        proxy_pass                    https://backend.nginxbar.org; # 被代理服务器的地址
        proxy_ssl_certificate         ssl/proxy_nginxbar_com.pem;   # 代理服务器的客户端证书
                                                                           # 文件
        proxy_ssl_certificate_key     ssl/proxy_nginxbar_com.key;   # 代理服务器的客户端证书
                                                                           # 密钥文件
        proxy_ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
        proxy_ssl_ciphers             HIGH:!aNULL:!MD5;

        proxy_ssl_verify        on;                  # 启用验证被代理服务器的证书
        proxy_ssl_trusted_certificate ssl/root.pem;  # 用于验证被代理服务器的主机名backend.
                                                     # nginxbar.org的根证书
        proxy_ssl_verify_depth  2;                   # 证书验证深度为2
        proxy_ssl_session_reuse on;                  # SSL连接启用会话重用
    }
}

Nginx Web服务器配置如下:

server {
    listen      443 ssl;
    server_name backend.nginxbar.org;
    access_log  logs/sslbackend_access.log  main;

    ssl_certificate        ssl/backend_nginxbar_org.pem;# 网站backend.nginxbar.org证书文件
    ssl_certificate_key    ssl/backend_nginxbar_org.key;# 网站backend.nginxbar.org证书密钥
                                                              # 文件
    ssl_verify_client      on;                          # 启用对Nginx服务的证书验证
    ssl_client_certificate ssl/proxy_root.pem;          # 用以验证Nginx服务器主机名
                                                        # proxy.nginxbar.com的根证书
    ssl_verify_depth  2;                                # 证书验证深度为2

    ssl_session_cache shared:SSL:10m;                   # HTTPS会话缓存的存储大小为10MB
    ssl_session_tickets off;                            # 以会话编号机制实现会话缓存
    ssl_session_timeout 10m;                            # 会话缓存的超时时间为10分钟

    charset utf-8;
    root /opt/nginx-web;
    index index.html index.htm;
}

HTTPS相关介绍请参见5.2节。

1.5、反向代理的真实客户端IP

客户端在访问互联网应用服务器时,与真实的应用服务器之间会因为有多层反向代理,而导致真实应用服务器获取的仅是最近一层的反向代理服务器IP。为使Nginx后端的上游服务器可以获得真实客户端IP, Nginx提供了ngx_http_realip_module模块用以实现真实客户端IP的获取及传递的功能。通过该模块提供的配置指令,用户可以手动设置上层反向代理服务器的IP作为授信IP, Nginx服务器根据配置指令的配置排除授信IP,而甄别出真实的客户端IP进行日志记录,并传递给上游服务器。模块配置指令如表所示。
在这里插入图片描述
该模块指令使用的指令域范围为http、server、location。配置样例如下:

server {
    listen       8088;
    access_log  logs/proxy.access.log  main;
    
    set_real_ip_from 192.168.2.159;   # 设置192.168.2.159为授信IP
    real_ip_header X-Forwarded-For;   # 通过HTTP头字段X-Forwarded-For获取真实客户端IP
    real_ip_recursive on;             # 以最后一个非授信IP为真实客户端IP
    
    tcp_nodelay off;                  # 因启用缓冲区功能,所以关闭立刻发送功能

    location ~ ^/ {
        proxy_force_ranges on;        # 强制启用字节范围请求支持
        proxy_pass   http://192.168.2.145:8082;
        break;
    }
}
Nginx代理服务应用实战:HTTP代理模块、正向代理、反向代理与TCP/UDP代理详解 Nginx的代理功能覆盖了HTTP、TCP/UDP协议的全场景需求,通过灵活的模块化配置,可实现高性能的反向代理、正向代理及负载均衡。在真实客户端IP获取方面,需结合HTTP头传递或PROXY协议确保后端服务的可见性。随着云原生和微服务架构的普及,Nginx的代理能力仍是构建高可用、安全的网络服务不可或缺的核心组件。 阅读详情

相关推荐

一文读懂Nginx应用之 HTTP反向代理

本文详细介绍了Nginx反向代理的三种配置方式:1)基础HTTP反向代理,将请求转发至单一后端Tomcat服务器;2)URI路径匹配方式,通过不同URI路径转发至不同后端服务器;3)双虚拟主机配置,通过不同端口或域名实现请求分流。文章包含完整的安装部署步骤(Nginx/Tomcat)、配置文件详解、日志分析及验证方法,重点讲解了location模块的匹配规则和proxy_pass指令的配置技巧。通过实际案例演示了如何将客户端请求透明转发至后端服务器,同时隐藏服务器真实信息,为构建高可用Web服务提供实用指导

野熊佩骑的博客 1030

Nginx HTTP和反向代理服务器

Nginx(engine x) 是一个高性能的HTTP和反向代理web服务器。2、什么是代理服务器:代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页信息,而是通过向代理服务器发送请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,然后根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或则获得目标服务器的指定资源。Web代理服务器是网络的中间实体。

qq_52093708的博客 2181

一篇文章将三极管讲透:三极管从原理到应用,从参数到特性,从入门到精通

晶体三极管(Transistor)是一种半导体电子器件,也是电子工程中最基本的元件之一。它有三个区域,分别是P型半导体,N型半导体和P型半导体,从而形成PNP型晶体三极管或者NPN型晶体三极管。

学习帮的博客 9万+

Nginx之正向代理与反向代理进阶(支持https)

Nginx之正向代理与反向代理进阶(支持https)

StoNENee的博客 1万+

拯救者R7000P(2021)装双系统Ubuntu20.04 解决联发科MT7921无线网卡在Ubuntu中不能联网

拯救者R7000P(2021)装双系统Ubuntu20.04/Ubuntu18.04 电脑配置:联想拯救者R7000P CPU:AMD R7-5800H GPU:RTX3060-6G 内存:16GB 固态:500G(原装)+500(加装) 1.做系统盘(本文以Ubuntu20.04为例) 1.下载Ubuntu20.04镜像 直接去Ubuntu官网或者一些国内的镜像去下载都可以,这里给出一个网址https://ubuntu.com/download/desktop,根据需要下载自己学要的Ubuntu版本,后缀

qq_41108639的博客 1万+

国标Gb28181里Contact和Route的使用

国标Gb28181是基于Sip协议的,因此对Contact和Route的使用,也可以说是Sip里Contact和Route的使用。Contact和Route则是sip协议里的头字段。 现在,在使用国标Gb28181来做项目时,经常会遇到这种情况,国标的下级是在内网里,上级在公网上。如果不做处理,下级到上级会经过nat协议的转换从而导致上级向下级发送请求时(比如获取目录请求)不能到达

wwyyxx26的专栏 5511

nginx 代理 http、https 配置

nginx 代理 http、https 配置

freedom_zzz的博客 9430

【学习系列】SAP RAP 4:通过注解来完成一些常规需求

本文介绍了RAP应用中常用注解的实现方式,包括搜索帮助、文本描述绑定、联动搜索、字段控制等功能。通过@Consumption、@UI等注解可以实现搜索帮助定义、多字段联动、必输校验、默认排序和默认值设置。管理字段可通过@Semantics注解自动记录创建/修改信息,长文本使用@UI.multiLineText实现多行显示。这些注解可优化界面交互和数据管理,为后续行为定义功能开发奠定基础。文章结构清晰,针对不同需求提供了具体的实现方案和代码示例。

DeveloperMrMeng的博客 696

使用 nginx 搭建代理服务器(正向代理 https 网站)指南

使用 nginx 搭建代理服务器(正向代理 https 网站)指南

墨鸦的博客 3万+

对CryptoDriver里密钥格式定义的探索(1)

一入网络安全才发现深似海,传统汽车MCU码农转型之路异常艰难。在CP AUTOSAR中的CryptoDriver SWS对密钥格式的需求来源于RFC,其中要求了RSA、ECC、SHE等key material的格式。再往下看,我就有些迷糊了,例如关于RSA Private Key的OCTEE STRING格式根据IETF RFC8017,Public Key又得根据RFC5280,完全不得其解。所以今天先从生成密钥对,并对其进行解析开始,一步一步拆解。

认真搞搞汽车MCU 527

使用verilog设计实现QR分解

QR(正交三角)分解法是求一般矩阵全部特征值的最有效并广泛应用的方法,一般矩阵先经过正交相似变化成为Hessenberg矩阵,然后再应用QR方法求特征值和特征向量。 使用verilog对QR实现方法进行设计并进行功能仿真: 如下: 顶层模块代码: module TOP( H1R, H1I, H2R, H2I, H3R, H3I, H4R, H4I, clk, rst_n, Y1R, Y1I, Y2R, Y2I, X1R, X1I, X2R, X2I ); parameter width = 16; // I

QQ_778132974的博客 2150

nginx 配置来做http代理、负载均衡、tcp代理转发

一、nginx http 代理 nginx http 代理 通过proxy_set_header,返回客户端真实IP地址及端口,而不是代理主机ip #proxy ngx 代理不支持 https,有https需求可以用squid server { listen 9998; allow 192.168.0.0/24; deny all; location / { access_log /data/logs/proxy_access.log main; ...

qq_39458487的博客 5113

基于Simulink的固态变压器(SST)多级协同控制​

本文介绍了基于Simulink的固态变压器(SST)多级协同控制方法。SST作为智能电网关键设备,其三级架构(AC-DC整流、DC-DC隔离、DC-AC逆变)存在级间耦合问题。文章提出纵向解耦与横向联动相结合的协同控制策略,详细推导了各级控制算法,并通过Simulink实现了10kV/400V级联型SST系统建模。仿真结果显示,在±20%电网波动和0-100%负载跳变下,系统能保持直流母线电压波动<2%。文章还提供了工程部署建议和代码生成方法,为SST的研发提供了实用指导。

amy_mhd的博客 301

Nginx保姆级入门——什么是反向代理?Nginx能实现哪些功能?

不理解反向代理?不知道Nginx有什么用?不知道Nginx怎么用?快进来看看吧!保姆级教学~拿来吧你

GreatBiscuit的博客 4万+

第18章:Ingestion Pipeline 数据摄取流水线

本文介绍了LlamaIndex的IngestionPipeline如何解决合同文档处理中的四大核心问题:不可重复、无追溯、无容错和无法缓存。通过标准化数据处理流程,将手工操作升级为工厂流水线模式,实现数据的可复用、可追踪和高效处理。文章详细阐述了Pipeline的设计原理,包括Transformation的串行编排、缓存机制(基于输入和Transformation的哈希值)以及数据血缘追踪(通过Node的metadata记录处理过程)。

davidwang456的专栏 62

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

nginx 动态代理_一本书带你吃透Nginx应用与运维

新书速递导读:Nginx作为一款优秀的开源Web服务器软件,因具有性能稳定、高并发能力强、资源耗用低及高性能的负载均衡等特点,被众多互联网公司广泛应用于实际生产项目中。因此,它也成为每个互联网技术人员的必备技能。今天为大家介绍一本新书《Nginx应用与运维实战》这是一部基于Nginx新版本和云原生应用场景系统讲解Nginx的著作,是作者十余年运维经验的总结。本书从应用、运维以及与Kube...

weixin_39805409的博客 408

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

一本书带你吃透Nginx应用与运维

新书速递导读:Nginx作为一款优秀的开源Web服务器软件,因具有性能稳定、高并发能力强、资源耗用低及高性能的负载均衡等特点,被众多互联网公司广泛应用于实际生产项目中。因此,它也成为每个...

华章IT官方博客 1583

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Nginx应用与运维——Nginx代理服务应用实战(gRPC代理)

gRPC是一个开源的基于HTTP/2协议的高性能、跨语言的远程过程调用(RPC)框架。它提供了双向流、流控、头部压缩、单TCP连接上的多复用请求等功能,这些功能使其在移动设备上可更节省空间和降低电量消耗。而且gRPC相对于REST的数据调用方式,提供了一个更加适合服务间调用数据的通信方案。基于gRPC的客户端应用可以像调用本地对象方法一样直接调用gRPC服务端提供的方法,使其更适合分布式应用和服务场景。

吴声子夜歌的博客 163

使用 Nginx 搭建代理服务器(正向代理 HTTPS 网站)指南

本文介绍了如何使用 Nginx 搭建正向代理服务器,支持 HTTP 和 HTTPS 网站代理,并提供了详细的代码和配置示例。通过本文的学习,您可以掌握搭建正向代理的基础知识,并能在实际项目中应用。代理服务器是一种非常强大的工具,能够帮助我们隐藏客户端信息、绕过 IP 限制等。合理的配置和优化可以提升代理服务器的性能,从而满足实际应用中的需求。

2509_94010119的博客 1045

nginx做http爬虫代理

使用Nginx作为HTTP爬虫代理,不仅能够提高爬虫的效率,还能增强其安全性和灵活性。通过合理配置Nginx,开发者可以更有效地管理爬虫请求,避免被目标网站封禁。希望这篇文章能帮助你更好地理解和使用Nginx,为你的爬虫项目提供强有力的支持!

Eonjq的博客 1725

赠书:一本书带你吃透Nginx应用与运维

新书速递导读:Nginx作为一款优秀的开源Web服务器软件,因具有性能稳定、高并发能力强、资源耗用低及高性能的负载均衡等特点,被众多互联网公司广泛应用于实际生产项目中。因此,它也成为每个...

程序猿DD 913

Nginx知识汇总,及实战案例

nginx在企业应用中可以说是重中之重,所以学会nginx在运维工作中就显得相当重要。下面是我总结的一些只是汇总以及在工作中的一些实战案例。

qq_57909106的博客 1771

【Nginx】系列之 一 反向代理

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端而言是透明的。一个server 中配置两个location,根据访问的路径跳转到不同端口的服务中。

康师傅没有眼泪 1710
上一篇: Nginx应用与运维——Nginx Web服务应用实战(HTTP增强协议服务器的搭建)
下一篇: Nginx应用与运维——Nginx代理服务应用实战(TCP/UDP代理)
吴声子夜歌
博客等级 码龄9年 2687粉丝 2265原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值