Nginx常见配置及应用
安装使用源码安装nginx
12345678910# 安装所需依赖yum install -y pcre-develyum install -y openssl openssl-develwget https://nginx.org/download/nginx-1.23.3.tar.gzmkdir /usr/local/nginxtar -zxvf nginx-1.23.3.tar.gzcd nginx-1.23.3./configure --prefix=/usr/local/nginxmake && make install
安装非默认模块启用 HTTPS 支持
12./configure --prefix=/usr/local/nginx --with-http_ssl_module make && make install
如果没有安装openssl或版本过低则需要先安装op ...
数据结构之树状数组
如果我们要求一个数组内任意区间的和,最朴素的算法是每次对区间所有元素进行求和运算,时间复杂度为O(n)。如果考虑用前缀和的方式去实现,则更新操作的时间复杂度为O(n)。如果数据量非常巨大,这样的时间复杂度仍然是不被接受的。树状数组则采用了一种折中方案,它通过将数组进行分组,使得求和与更新的时间复杂度均为O(log n)。
告别VIP,可免费收听和下载任何音乐
不用充钱即可在线收听和下载任何歌曲,包括收费歌曲。本程序为大学时期开发的简单音乐盒程序,后为了听免费听歌,于是在此基础上做了二次开发。
Centos7安装L2TP
L2TP是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密。不过也有不同之处,比如PPTP要求网络为IP网络,L2TP要求面向数据包的点对点连接;PPTP使用单一隧道,L2TP使用多隧道;L2TP提供包头压缩、隧道验证,而PPTP不支持。本文来介绍如何在CentOS上搭建L2TP。
数据结构之线段树
如果我们要求一个数组内任意区间的和,那么很容易想到用前缀和的方式去实现,每次计算任意区间和的时间复杂度都是O(1)。但是如果现在能对数组的任意一项进行修改,那么为了保证前缀和仍然有效,最坏情况下必须去更新前缀和数组的每一项,这样修改数据造成的时间复杂度是O(n)。所以线段树由此而生,它的目标也是求数组内任意区间的和,但对于数据的修改,它的时间复杂度只需要O(log n)。
短链接的生成方式
短链接是一种 URL 简化服务, 比如:当你输入一个 URL https://www.xdull.com 时,它将返回一个简化的URL http://tinyurl.com/weuZn ...
守护进程Supervisor
在一个分布式环境中,每台机器上可能需要启动和停止多个进程,使用命令行方式一个一个手动启动和停止非常麻烦,而且查看每个进程的状态也很不方便。为此Supervisor工具应运而生,它能够对很方便的对多个进程进行简单高效中心化管理。
蓄水池抽样算法
从n个数字中随机选取m个数字作为样本,要求这n个数字每个被选到的概率都相等。但如果n是不确定的,如何保证概率仍然相等?
CXXABI_1.3.8 not found
‘CXXABI_1.3.8’ not found运行程序时,出现c++依赖缺失错误,Error: /lib64/libstdc++.so.6: version 'CXXABI_1.3.8' not found
主要问题在于没有CXXABI_1.3.8,可通过如下命令检查:
1strings /usr/lib64/libstdc++.so.6|grep CXXABI
可以看到目前包是libstdc++.so.6.0.19
下载一个较新的版本libstdc++.so.6.0.26,将其上传到/usr/lib64/目录。
备份原来的libstdc++.so.6
1mv libstdc++.so.6 libstdc++.so.6.bak
创建新的libstdc++.so.6软链接
1ln -s libstdc++.so.6.0.26 libstdc++.so.6
再次检查是否有缺失的版本,可以看到CXXABI_1.3.8有了
1strings /usr/lib64/libstdc++.so.6|grep CXXABI
再次运行程序,错误解除。
附libstdc++. ...
JVM参数配置及调优
JVM参数分类jvm 参数可分为三类:
标准参数:以 “-“ 开头的参数
非标准参数:以 “-X“ 开头的参数
不稳定参数:以”-XX“ 开头的参数
标准参数标准参数是指在各个JVM版本中基本保持不变,相对比较稳定。
标准参数统一都是以 “-“ 开头,如:
1java -classpath E:/code -Dprofile=dev HelloWorld tom jack
注意:其中HelloWorld 是被运行的 HelloWorld.class。HelloWorld 之前就是设置的JVM标准参数(-classpath、-D),HelloWorld 之后的参数(tom、jack)是用来传给 main(String[] args) 方法的args数组变量的,两者位置不要放错。
查看所有标准参数:
打开一个命令终端,执行 java -help,就可以展示所有的JVM标准参数。
非标准参数非标准参数表示不保证所有JVM实现都支持这些参数,在将来的JVM版本中可能会发生改变。非标准参数统一以 -X 开头,如 -Xmx20M 设置最大java堆大小,示例:
1java -classpa ...