1.为ä»ä¹ï¼nginxçlog被èªå¨å缩
2.cat /nginx/logs/access.log | awk '{ print $7}'| sort |uniq -c | sort -nr| head -n3
3.nginx集成ldap
4.nginx前端页面配置(nginx代理前端页面)
为ä»ä¹ï¼nginxçlog被èªå¨å缩
ä¸è¬éè¿rpmå æ¹å¼å®è£ çnginxçæ¥å¿ææ¯å¤©å缩çåè½
æºç å å®è£ å¯ä»¥ä½¿ç¨logrotate对æ¥å¿è¿è¡å®æå缩ä¸å¤ä»½
äºè ä¸è¬é½æ¯éè¿logrotateå®ç°ï¼å¦ææéè¦å¯ä»¥éè¿å ¶ä»æ¹å¼å®ç°
cat /nginx/logs/access.log | awk '{ print $7}'| sort |uniq -c | sort -nr| head -n3
cat /nginx/logs/access.log
nginxç访é®æ¥å¿
awk '{ print $7}'
第7åæ¯è®¿é®å°ç页é¢
ç»è®¡å3å访é®æå¤ç页é¢ï¼åæ°é
nginx集成ldap
安装Nginx并集成LDAP服务器,源码实现对网站进行基于LDAP认证。源码首先更新软件包列表,源码执行命令:
sudo apt-get install software-properties-common
接着添加Nginx的源码PPA源:
sudo add-apt-repository ppa:nginx/stable
更新软件包列表:
sudo apt-get update
安装Nginx:
sudo apt-get install nginx
验证Nginx安装情况:
nginx -V
安装额外的依赖以支持Nginx与LDAP集成:
git clone kvspb/nginx-auth-ldap
将nginx-auth-ldap移动至/usr/local/src目录下:
sudo mv nginx-auth-ldap /usr/local/src
下载Nginx源码:
wget nginx.org/download/nginx-1..1.tar.gz
解压Nginx源码包:
tar -zxvf nginx-1..1.tar.gz
安装Nginx所需的依赖:
apt-get install libpcre3 libpcre3-dev libssl-dev zlib1g-dev libldap2-dev libxml2-dev libxslt1-dev libgd-dev libgeoip-dev build-essential -y
配置Nginx源码以支持LDAP功能:
cd nginx-1..1
./configure --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --pat --with-debug --with-pcre-jit --with-mon nginx-core
清理已卸载软件包的依赖:
sudo apt-get --purge autoremove
nginx前端页面配置(nginx代理前端页面)
nginx前后端代理配置
代理单个前端时,以下eg1、源码eg2代理的源码泉港区富源码头是同一个文件,不用的源码是url
细心地读者发现还有第三个代理eg3、它的源码不同在于行,是源码以alias开头的代理。那么他有什么不同呢,源码按照上面代理文件的源码路径,test1与test0是源码一样的,也就是源码项目监测指标源码说eg1和eg3是一样的代理。
简单的源码分析出:
root:root+location为实际文件路径
alias:镇告alias为实际文件路径(ps:必须是以/结尾,因为御搭明代理的源码东西在此目录下)
当代理多个静态文件时,容易发生问题。
若把单个配置成location/时,又没有问题,那么你需要参考以下配置。
ps:一般根路径用root,其他为alias代理。
有关^~请看FAQ
行最后的/api/;分号前面的/问题请看FAQ
因为微信公众号的回调只能调用对dev.server.com发起请求一定会出现跨域。
现在我们只需要启动一个nginx服务器,将server_name设置为fe.server.com,然后设置相应的location以拦截前端需要跨域的请求,最后将请求代理回dev.server.com。迷你编程漩涡源码如下面的配置:
这样可以完美绕过浏览器的同源策略:fe.server.com访问nginx的fe.server.com属于同源访问,而nginx对服务端转发的请求不会触发浏览器的同源策略。
根据状态码过滤
根据URL名称过滤,精准匹配URL,不匹配的URL全部重定向到主页。
根据请求类型过滤。
GZIP是规定的三种标指厅准HTTP压缩格式之一。目前绝大多数的网站都在使用GZIP传输HTML、CSS、JavaScript等资源文件。
对于文本文件,GZip的mysql源码存储引擎效果非常明显,开启后传输所需流量大约会降至1/4~1/3。
并不是每个浏览器都支持gzip的,如何知道客户端是否支持gzip呢,请求头中的Accept-Encoding来标识对压缩的支持。
启用gzip同时需要客户端和服务端的支持,如果客户端支持gzip的解析,那么只要服务端能够返回gzip的文件就可以启用gzip了,我们可以通过nginx的配置来让服务端支持gzip。下面的respone中content-encoding:gzip,指服务端开启了gzip的压缩方式。
这里为什么默认版本不是1.0呢?
HTTP运行在TCP连接之上,自然也有着跟TCP一样的三次握手、慢启动等特性。java源码研究分享
启用持久连接情况下,服务器发出响应后让TCP连接继续打开着。同一对客户/服务器之间的后续请求和响应可以通过这个连接发送。
为了尽可能的提高HTTP性能,使用持久连接就显得尤为重要了。
HTTP/1.1默认支持TCP持久连接,HTTP/1.0也可以通过显式指定Connection:keep-alive来启用持久连接。对于TCP持久连接上的HTTP报文,客户端需要一种机制来准确判断结束位置,而在HTTP/1.0中,这种机制只有Content-Length。而在HTTP/1.1中新增的Transfer-Encoding:chunked所对应的分块传输机制可以完美解决这类问题。
nginx同样有着配置chunked的属性chunked_transfer_encoding,这个属性是默认开启的。
Nginx在启用了GZip的情况下,不会等文件GZip完成再返回响应,而是边压缩边响应,这样可以显著提高TTFB(TimeToFirstByte,首字节时间,WEB性能优化重要指标)。这样唯一的问题是,Nginx开始返回响应时,它无法知道将要传输的文件最终有多大,也就是无法给出Content-Length这个响应头部。
所以,在HTTP1.0中如果利用Nginx启用了GZip,是无法获得Content-Length的,这导致HTTP1.0中开启持久链接和使用GZip只能二选一,所以在这里gzip_http_version默认设置为1.1。
如上面的图,前面是众多的服务窗口,下面有很多用户需要服务,我们需要一个工具或策略来帮助我们将如此多的用户分配到每个窗口,来达到资源的充分利用以及更少的排队时间。
把前面的服务窗口想像成我们的后端服务器,而后面终端的人则是无数个客户端正在发起请求。负载均衡就是用来帮助我们将众多的客户端请求合理的分配到各个服务器,以达到服务端资源的充分利用和更少的请求时间。
Upstream指定后端服务器地址列表
在server中拦截响应请求,并将请求转发到Upstream中配置的服务器列表。
上面的配置只是指定了nginx需要转发的服务端列表,并没有指定分配策略。
轮询策略
默认情况下采用的策略,将所有客户端请求轮询分配给服务端。这种策略是可以正常工作的,但是如果其中某一台服务器压力太大,出现延迟,会影响所有分配在这台服务器下的用户。
最小连接数策略
将请求优先分配给压力较小的服务器,它可以平衡每个队列的长度,并避免向压力大的服务器添加更多的请求。
最快响应时间策略
依赖于NGINXPlus,优先分配给响应时间最短的服务器。
客户端ip绑定
来自同一个ip的请求永远只分配一台服务器,有效解决了动态网页存在的session共享问题。
匹配以png|gif|jpg|jpeg为结尾的请求,并将请求转发到本地路径,root中指定的路径即nginx本地路径。同时也可以进行一些缓存的设置。
nginx的功能非常强大,还有很多需要探索,上面的一些配置都是公司配置的真实应用(精简过了),如果您有什么意见或者建议,欢迎在下方留言...