Nginx反向代理HTTP header自定义参数丢失问题
一、问题背景客户内网服务器不能直接访问外网,需要通过一台跳板机才能访问外网,在跳板机安装Nginx反向代理外网接口服务,架构图如下:代理设置完成后,在联调过程中请求外网接口返回参数错误,但是外网环境下不经过Nginx代理直接访问外网接口则能正常访问,说明在经过Nginx代理时,部分参数丢失了。
二、问题排查根据接口报错,定位到是HTTPheader中的一个自定义参数client_id参数经过Nginx代理时没有转发出去,问题出现在Nginx代理上。
Nginx主配置文件nginx.conf内容如下
user root;
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 {
...
Nginx反向代理404问题
一、问题背景 在测试web应用的时候,前端需要进行跨域访问后端接口,由于服务端跨域访问功能不完善,所以打算通过反向代理临时解决跨域问题,但是反向代理配置成功后,访问时浏览器端返回404,在nginx的访问日志中也提示404,Nginx配置如下。
1.1 Nginx反向代理配置server {
listen 80;
server_name h5-verify.mpoom.cn;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8000;
}
}
server {
listen 8 ...
Java 和 HTTP 的那些事(四) HTTPS 和 证书
非原创,转载于:https://www.aneasystone.com/archives/2016/04/java-and-https.html
说起 HTTP 的那些事,则不得不提 HTTPS ,而说起 HTTPS ,则不得不提数字证书。这篇博客将从 Java 的角度,学习 HTTPS 和数字证书技术,并分享爬虫开发的过程中针对爬取 HTTPS 站点时可能遇到的一些问题。在前面的几篇博客里,其实已经略微提到过 HTTPS 了,譬如使用 HttpsURLConnection 类发送 HTTPS 请求,在使用代理时 HTTP 和 HTTPS 的一些差异等等。关于 HTTPS 的概念就不废话了,下面直接进入正题。
一、访问 HTTPS 站点在前面的第一篇博客《模拟 HTTP 请求》里,介绍了两种方法来模拟发送 HTTP 请求,访问 HTTP 站点。一种方式是通过 java.net 自带的 HttpURLConnection,另一种方式是通过 Apache 的 HttpClient,这两种方式各有各的优势。这里也使用这两种方式来访问 HTTPS 站点,从下面的代码可以看到,和前面访问 H ...
Nginx离线安装
一、概览
服务器无法访问外网的情况下,Nginx只能离线安装,安装主要步骤如下:
安装gcc、g++
安装pcre、zlib
安装nginx
二、安装gcc、g++gcc --version
g++ --version
使用gcc --version g++ --version查看服务器是否已经安装过gcc、**g++**。
2.1 下载如果未安装,请下载gcc、**g++**及其依赖包进行安装,下面为Centos7 x86_64下 gcc 与 **g++ ** 4.8.5的依赖包:
gcc依赖包详见:gcc-4.8.5-39.el7.x86_64.rpm
g++依赖包详见:gcc-c++-4.8.5-39.el7.x86_64.rpm
根据上述依赖包列表下载安装包,下载地址:Centos Mirrors 、 阿里云 、网易,下载后的依赖包如下图所示:
上述安装包已分享至天翼云盘gcc g++ rpm安装包
注意
上图下载的依赖包有一些是gcc g++依赖包列表中不存在的,是因为那部分安装包是gcc g++ 依赖包的依赖包,这里参考网上下载了缺少的一些包
2 ...
Apache SkyWalking简介及使用
一、什么是SkyWalking分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统。
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案.支持Java, .Net Core, PHP, NodeJS, Golang, LUA语言探针支持Envoy + Istio构建的Service Mesh更多内容参考SkyWalking官网
MySQL调优案例分享
MySQL调优案例分享——技术分享
JPA在不同数据库类下ID生成策略适配方案
JPA在不同数据库类下ID生成策略适配方案——技术解决方案
一致性哈希算法
一致性哈希算法一致性哈希算法是为了解决分布式缓存中的热点问题而提出的。一致性哈希将每个对象映射到圆环边上的一个点,系统再将可用的节点机器映射到圆环不同位置。查找某个对象对应的机器时,需要用一致性哈希算法计算得到对象在圆环上的位置,沿着圆环边顺序查找,直到遇到默认机器节点,这台机器即为该对象的存储位置。当删除一台节点机器时,这台机器上的所有对象都要移动到下一台机器上。当添加一台机器到圆环边上的一个点,这个点下一台机器需要将这个点之前的对象移动到新机器上。
HashMap源码解析
面试常见问题
1、你看过那些源码吗?2、那你能讲讲HashMap的实现原理吗?3、HashMap什么时候会进行rehash?4、HashMap什么时候会进行扩容?5、那HashMap的初始容量设置成多少比较合适呢?6、结合源码说说HashMap在高并发场景中为什么会出现死循环?7、JDK1.8中对HashMap做了哪些性能优化?8、HashMap和HashTable有何不同?9、HashMap 和 ConcurrentHashMap 的区别?10、ConcurrentHashMap和LinkedHashMap有什么区别?11、为什么ConcurrentHashMap中的链表转红黑树的阀值是8?12、什么是ConcurrentSkipListMap?他和ConcurrentHashMap有什么区别?13、还看过其他的源码吗?Spring的源码有了解吗?14、SpringBoot的源码呢?知道starter是怎么实现的吗?
一、构造方法1.1无参构造方法
默认初始化容量16,加载因子0.75
/**
* Constructs an empty <tt>HashMap</ ...
ConcurrentHashMap源码解析
面试常见问题
ConcurrentHashMap实现原理
ConcurrentHashMap如何保证线程安全
本文基于JDK1.8
一、构造方法和基本属性JDK8中ConcurrentHashMap参考了JDK8 HashMap的实现,构造方法和基本属性与HashMap大致相同,可参考HashMap源码解,以下主要列举不同的地方。
/**
* Encodings for Node hash fields. See above for explanation.
*/
static final int MOVED = -1; // hash for forwarding nodes
static final int TREEBIN = -2; // hash for roots of trees
static final int RESERVED = -3; // hash for transient reservations
// Hash节点正常可用位
static final int HASH_BITS = 0x7fffffff; // usable bit ...