LNMP调优
1、编译安装nginx前修改: 在安装包目录下
vim src/core/nginx.h //#号不代表注释
#define nginx_version 1009009 //软件版本号
#define NGINX_VERSION "1.9.9" //版本号
#define NGINX_VER "nginx/" NGINX_VERSION //软件程序名字
vim src/http/ngx_http_header_filter_module.c //隐藏版本信息,请求头
//搜索NGINX_VER
static char ngx_http_server_string[] = "Server: nginx" CRLF;改成
static char ngx_http_server_string[] = "hello"
vim src/http/ngx_http_special_response.c //隐藏版本信息,相应头
//搜索NGINX_VER
"<hr><center>" NGINX_VER "</center>" CRLF 改成
"<hr><center>hello </center>" CRLF
安装依赖:yum install -y gcc gcc-c++ autoconf pcre-devel automake zlib zlib-devel openssl-devel
编译:./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.37
安装:make -j 2 && make install
启动:/usr/local/nginx/sbin/nginx
检查启动是否成功(80端口监听):netstat -lntup
禁用防火墙和selinx
2、调优:
主控进程(root):主要目的是产生和销毁worker进程的及生成日志,自己不处理请求。
运行进程(worker进程:nobody):主要负责接受用户请求。
vim /usr/local/nginx/conf/nginx.conf //配置文件
#如果改nginx的用户组则打开#user nobody;将nobody更改,建议不改
worker_processes 1; //运行的线程数,建议将数量改为auto
worker_cpu_affinity 00000001 ~~~~~01000000 //cpu绑定到1~7核cup上,建议不加
worker_rlimit_nofile 1024 //一个worker进程默认打开的文件数,默认1024
events { //定义事件,
use epoll //事件模型,在linux中使用epoll模型最好
worker_connections 1024; //一个worker进程可以相应的最大并发数
accept_mutex_delay 60; //一个worker进程接受请求的时候拒绝其他请求的时间,慎重使用
accept_mutex on //是否打开负载均衡锁。当使用nginx作为负载均衡的时候,如果打开,可以让多个worker进程轮流的与客户端进行连接,真正成为一个负载均衡,否则一个进程一直在处理负载均衡,而其他的在闲置。
}
http{
include mime.types;
default_type application/octet-stream;
//这两行加载媒体格式,如css、js等,必须
----------------------------------------------------------------------------------
#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;
//开启高效文件传输模式sendfile指令指定ngnix是否调用,配合下面,需打开
#tcp_nopush on;
----------------------------------------------------------------------------------
keepalive_timeout 65; //持久链接
tcp_nodelay on;
client_header_timeout 15; //客户端请求头读取的超时时间
client_body_timeout 15; //body请求读取的超时时间
send_timeout 15
//这几个选项保持持久链接
----------------------------------------------------------------------------------
#gzip on;
//是否开启压缩,需配置压缩的范围
gzip_min_length 1k; //压缩文件大小,大于1k的文件开始压缩,小于的会越压越大
gzip_buffers 4 32k; //缓冲区大小,4段,每段32k
gzip_http_version 1.1; //压缩版本,默认为1.1,可不写这行
gzip_comp_level 5; //压缩等级,范围1~9,一般写到4或5
gzip_types image/png text/html text/xml application/javacript; //压缩文件类型
gzip_vary on; //启动前端缓存服务
----------------------------------------------------------------------------------
client_max_body_size 10m //上传大小的限制,最大为10m,一般不用,在php内做限制
----------------------------------------------------------------------------------
}
server {
----------------------------------------------------------------------------------
listen 80; //监听端口
写法:listen port;和listen ip:port (注:port为端口)
----------------------------------------------------------------------------------
server_name; //服务器名称
写法:www.baidu.com *.baidu.com www.* ~^.*\.baidu\.com$(正则) default_server
----------------------------------------------------------------------------------
location写法
= //精确匹配
^~ //URI前半部分匹配
~ //正则表达式匹配,区分大小写
~* //正则表达式匹配,不区分大小写
location / { //根
root html; //网站根目录
index index.html index.php index.htm;
}
----------------------------------------------------------------------------------
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
//配置错误页面和状态码
----------------------------------------------------------------------------------
proxy_pass //重定向,写在server里,如:
location / {
proxy_pass http://www.sina.com; //这样用比较少
}
//健康的
location / {
proxy_pass http://192.168.31.223;
porxy_set_header Host $host;
porxy_set_header X-Real-IP $remote_addr;
}
//在要访问的机器上配置(httpd服务)
vim /etc/httpd/conf/httpd.conf
//搜索LogFormat
%h改%{X-Real-IP}i
//搜索combined检查是否调用combined
重启httpd
----------------------------------------------------------------------------------
}
//缓存
proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=hello:10m;
/tmp/nginxcache //缓存路径
levels=1:2 //目录层级,第一级目录为一个字符,第二级目录为两个字符,一个冒号为两层,两个冒号为三层,如:1:2:3
keys_zone=hello:10m //从内存中取10m空间命名为hello
proxy_cache_methods GET HEAD; //缓存的格式
proxy_cache_min_uses 1; //设置为1的时候为这个资源启用一次开始缓存,设置为2时为启用两次时开始缓存
proxy_cache_revalidate on; //有效期验证
proxy_cache_use_stale error timrout; //如果缓存过期了,就去后端请求
proxy_cache_valid 200 1d; //缓存时间设置,200的状态码缓存一天
proxy_connect_timeout 30s; //缓存超时时间
proxy_hide_header; //隐藏http首部,可不配置
proxy_buffer_size 8k; //加速响应
proxy_cache_bypass $http_authorization //对哪些内容不要缓存,对http认证的内容不缓存
//设置好以后需在server内的location内引用
proxy_cache hello;
----------------------------------------------------------------------------------
upstream backend{
server ip:端口 max_fails(检测次数)=3 fail_timeout 30s;
}
//配置upstream后在server下的location下的proxy_pass改为
porxy_pass http://backend;
----------------------------------------------------------------------------------
LNMP调优的更多相关文章
- Nginx-PHP优化设置 + lnmp调优的关键影响因素 + php-fpm + nginx返回码 + tcp调优 + 最大文件描述符
https://www.cnblogs.com/zengkefu/p/5602473.html最大文件描述符 https://blog.csdn.net/fanren224/article/detai ...
- Nginx 源码安装和调优
常见web架构: LAMP =Linux+Apache+Mysql+PHP LNMP =Linux+Nginx+Mysql+PHP nginx概述: 知道:1 不知道:2 Nginx (&q ...
- 46张PPT讲述JVM体系结构、GC算法和调优
本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述.(内嵌iframe,建议使用电脑浏览) 好东西当然要分享,PPT已上传可供下载 ...
- 《深入理解Java虚拟机》调优案例分析与实战
上节学习回顾 在上一节当中,主要学习了Sun JDK的一些命令行和可视化性能监控工具的具体使用,但性能分析的重点还是在解决问题的思路上面,没有好的思路,再好的工具也无补于事. 本节学习重点 在书本上本 ...
- Spark Shuffle原理、Shuffle操作问题解决和参数调优
摘要: 1 shuffle原理 1.1 mapreduce的shuffle原理 1.1.1 map task端操作 1.1.2 reduce task端操作 1.2 spark现在的SortShuff ...
- 搭建 windows(7)下Xgboost(0.4)环境 (python,java)以及使用介绍及参数调优
摘要: 1.所需工具 2.详细过程 3.验证 4.使用指南 5.参数调优 内容: 1.所需工具 我用到了git(内含git bash),Visual Studio 2012(10及以上就可以),xgb ...
- jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
文章同步发布于github博客地址,阅读效果更佳,欢迎品尝 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎 ...
- jvm系列(六):jvm调优-从eclipse开始
jvm调优-从eclipse开始 概述 什么是jvm调优呢?jvm调优就是根据gc日志分析jvm内存分配.回收的情况来调整各区域内存比例或者gc回收的策略:更深一层就是根据dump出来的内存结构和线程 ...
- web前端性能调优
最近2个月一直在做手机端和电视端开发,开发的过程遇到过各种坑.弄到快元旦了,终于把上线了.2个月干下来满满的的辛苦,没有那么忙了自己准备把前端的性能调优总结以下,以方便以后自己再次使用到的时候得于得心 ...
随机推荐
- Codeforces Round #350 (Div. 2)(670C)
今天对着算法进阶指南,学了一下离散化.大概对桶排这样的算法优化比较好吧. 离散化:就是把无穷大的集合中若干个元素映射为有限集合以便于统计的方法.例如在很多时候,问题范围定义为整数集合Z,但涉及的元素只 ...
- 2019牛客多校第八场A All-one Matrices 悬线法,单调栈待补
All-one Matrices 题意 对于一个n,m的01矩阵,问有多少个极大矩阵. 分析 对于悬线法来说,其过程就是枚举极大矩阵的过程,那如何计数呢?对于一个点来说,若其左右边界包含了上一个点的悬 ...
- winform DataGrid排序、去掉第一的空白列
排序: dataGridView1.Sort(dataGridView1.Columns[3], ListSortDirection.Descending); 去掉空白列: dataGridView1 ...
- [转]shallow heap & retained heap
所有包含Heap Profling功能的工具(MAT, Yourkit, JProfiler, TPTP等)都会使用到两个名词,一个是Shallow Size,另一个是 Retained Size. ...
- I+Me=完整的自我
这是这个系列的第二篇文章,如同第一篇一样,这篇文章会在24小时后删除. 之所以如此极端,因为我自认为这篇文章很有价值,不以这种方式,大家即使看了,也只会一带而过,不会真的汲取到营养. 这篇文章涉及的关 ...
- Mybatis之连接池
一,前言 连接池有很多种,最为熟悉的比如c3p0,DBCP,druid等. mybatis支持三种内置的数据源类型: Pooled:实现dataSource接口,并且使用了池的思想. UNPo ...
- 浅谈C#委托的用法-delegate
2018年11月7日 小雨 一.委托的概念 委托和类一样是一种用户自定义类型,它存储的就是一系列具有相同签名和返回类型的方法的地址,调用委托的时候,它所包含的所有方法都会被执行. 借用百度上的 ...
- jQuery-File-Upload 使用,jQuery-File-Upload上传插件
================================ ©Copyright 蕃薯耀 2020-01-10 https://www.cnblogs.com/fanshuyao/ 一.官网地址 ...
- 巨杉TechDay回顾 | 技术人的夏天 · 就是这么燃!
在All in Cloud的云计算时代,业务和应用正在不断“云化”,在此过程中云原生(Cloud Native)理念应运而生.作为云化改造的重要部分,云数据库因其天生的弹性扩展能力以及灵活.易用等特点 ...
- Python调用cmd命令
常用的两种方式: 1.python的OS模块. OS模块调用CMD命令有两种方式:os.popen(),os.system(). 都是用当前进程来调用. os.system是无法获取返回值的.当运行结 ...