nginx和tomcat的优化
测试脚本(服务器414报错)
#!/bin/bash
url=http://192.168.4.5/
for i in {1..5000}
do
url=${url}v$i=i
done
echo $url
#ab -c 2000 -n 2000 http://192.168.4.5
(服务器报错too many open files)
#curl -I http://192.168.4.5
(查看服务器信息-暴露版本信息)
通过修改/etc/security/limits.conf文件修改打开文件最大数量
ulimit –Hn 10000 临时修改linux文件最大数量
ulimit –Sn 10000 临时修改linux文件最大数量
nginx全局优化:
vim /usr/local/nginx/conf/nginx.conf
worker_processes 2; //与CPU核心数量一致
events {
worker_connections 10000;
//每个worker最大并发连接数
}
http {
server_tokens off;
//不显示Nginx具体版本号
sendfile on;
//提升Nginx读文件性能
tcp_nodelay on;
//关闭TCP缓延迟发送数据
keepalive_timeout 10;
//保持连接的超时时间
gzip on;
gzip_min_length 1000;
gzip_comp_level 4;
gzip_types text/plain text/css application/json application/x-javascript text/xml
application/xml application/xml+rss text/javascript;
client_header_buffer_size 1k;
//默认请求包头信息的缓存
large_client_header_buffers 4 4k;
//大请求包头部信息的缓存个数与容量
//先根据client_header_buffer分配,如果不够,再根据large值分配
open_file_cache max=2000 inactive=20s;
open_file_cache_valid 60s;
open_file_cache_min_uses 5;
open_file_cache_errors off;
//设置服务器最大缓存2000个文件句柄,关闭20秒内无请求的文件句柄
//文件句柄的有效时间是60秒,60秒后过期
//只有访问次数超过5次会被缓存
}
静态缓存在用户的电脑【视频、音乐、图片】
vim /usr/local/nginx/conf/nginx.conf
... ...
server {
location / {}
location ~ \.(jpg|png|flv)$ {
expires 30;
}
}
#nginx -s reload
#find / -name "*.jpg"
#cp xx.jpg /usr/local/nginx/html/x.jpg
#firefox 192.168.4.5/x.jpg
#about:cache
返回自定义的报错页面
#vim /usr/local/nginx/conf/nginx.conf
server {
... ...
charset utf-8;
error_page 404 400 /404.html;
}
#nginx -s reload
#cd /usr/local/nginx/html
#echo "网站崩溃了" > 404.html
缓存
浏览器[缓存]
varnish[缓存]异地
nginx硬盘[缓存]
盗链接
youku,letv,aiqiyi,tudou
防止盗链
http头部信息
Referer:我从哪里来
www.sina.com
Referer:www.sina.com
百度:搜索sina
链接www.sina.com
Referer:www.baidu.com
判断referer是不是www.sina.com
rewrite ^/ http://www.sina.com/a.jpg
步骤:
# cat /usr/local/nginx/conf/nginx.conf
location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.tarena.com;
if ($invalid_referer) {
rewrite ^/ http://www.tarena.com/403.html;
}
}
nginx总结:
用户认证
虚拟主机:IP,端口,域名
SSL加密网站
调度器(负载均衡,web高可用)
LNMP(动态)
地址重写
优化[并发,版本,压缩,缓存,keepalive,自定义报错]
++++++++++++++++++++++++++++++++++++++
JAVA网站
Tomcat,weblogic,websphere,Jboss,resin
tomcat[java编写的Web服务器]
安装并启动tomcat:
cd lnmp_soft
tar -xf apache-tomcat-....
mv apache-tomcat... /usr/local/tomcat
/usr/local/tomcat/bin/startup.sh 启动服务
测试页面访问:
firefox http://192.168.2.100:8080
tomcat配置文件模版框架:
vim /usr/local/tomcat/conf/server.xml
<server>
<service>
<connector port=8080 />
<engine default=localhost>
<host name=a>
</host>
<host name=localhost>
</host>
</engine>
</service>
</server>
实验1:虚拟主机www.a.com,www.b.com
vim /usr/local/tomcat/conf/server.xml
... ...
<Engine ...>
<Host name="www.a.com" appBase="a"
unpackWARs="true" autoDeploy="true">
</Host>
<Host name="www.b.com" appBase="b"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
#cd /usr/local/tomcat/
#mkdir -p {a,b}/ROOT
#echo "AAA" > a/ROOT/index.html
#echo "BBB" > b/ROOT/index.html
#/usr/local/tomcat/bin/shutdown.sh
#/usr/local/tomcat/bin/startup.sh
实验2:设置网页ROOT路径
#vim /usr/local/tomcat/conf/server.xml
... ...
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
<Context path="" docBase="base" reloadable="true"/>
</Host>
<Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true">
</Host>
#mkdir -p /usr/local/tomcat/a/base
#echo "base" > /usr/local/tomcat/a/base/index.html
#/usr/local/tomcat/bin/shutdown.sh
#/usr/local/tomcat/bin/startup.sh
实验3:
#vim /usr/local/tomcat/conf/server.xml
... ...
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
<Context path="/test" docBase="/var/www/html/" reloadable="true"/>
</Host>
#/usr/local/tomcat/bin/shutdown.sh
#/usr/local/tomcat/bin/startup.sh
测试是否打开/var/www/html下的首页:
#firefox http://www.a.com:8080/test/
ftp://192.168.2.100/share/operation_note/day04.txt
rm -rf /usr/local/tomcat
重新解压tomcat
SSL加密网站:
# keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore
备注:
-genkeypair 生成密钥
-alias 别名
-keyalg 算法为RSA
-keystore 密钥文件存储路径及文件名
# keytool -genkeypair --help【查看帮助】
vim /usr/local/tomcat/conf/server.xml
... ...84行左右
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/usr/local/tomcat/keystore" keystorePass="123456"
clientAuth="false" sslProtocol="TLS" />
重启服务
firefox https://192.168.2.100:8443
192.168.4.5
yum -y install memcached telnet
NoSQL数据库、KV数据库、缓存数据库(快)
CPU > 内存 > 硬盘 > 数据库 (SQL:增,删,改,查)
#systemctl start memcached
#netstat -nutlp |grep memcache
#telnet 127.0.0.1 11211
>set name 0 100 3
tom
>get name
存储一个key,名称name,值是tom
>set key 0 100 3
xxx
>get key
>set key 0 100 3
存储的数据不压缩
数据存储100秒
存储的数据为3个字符
add name 0 180 10 //仅可以新建
set name 0 180 10 //可以新建或替换覆盖
replace name 0 180 10 //仅可以替换覆盖
get name //查询
append name 0 180 10 //追加
delete name //删除
stats //查看状态
flush_all //清空所有
memcached的端口?
memcached缓存的大小?
#systemctl start memcached
#cat /usr/lib/systemd/system/memcached.service
#cat /etc/sysconfig/memcached
确认下自己LNMP环境:
test.php
<?php
phpinfo();
?>
#firefox http://192.168.4.5/test.php
nginx,php,php-fpm,
nginx配置,实现动静分离location / {}
location \.php$ {}
案例:使用PHP连接memcached
# yum -y install php-pecl-memcache
# systemctl restart php-fpm
#cd /root/lnmp_soft/php_scripts
#cat mem.php
<?php
$memcache=new Memcache;
$memcache->connect('localhost',11211) or die ('could not connect!! ');
$memcache->set('key', 'test');
$get_values=$memcache->get('key');
echo $get_values;
?>
#cp mem.php /usr/local/nginx/html
#firefox http://192.168.4.5/mem.php //验证
检查:1.LNMP是否正确
2.是否给PHP安装了memcache扩展包
3.是否重启了php-fpm
4.是否启动了memcahced服务
5.是否关闭了SELinux,防火墙
6.netstat 检查80 , 9000 , 11211端口
--------------------------------------------------------------------
client: eth0 192.168.4.100
-------------------------------------------------------------------
proxy: eth0 192.168.4.5
eth1 192.168.2.5
---------------------------------------------------------------------
web1: eth1 192.168.2.100
---------------------------------------------------------------------
web2: eth1 192.168.2.200
---------------------------------------------------------------------
web1:tomcat
proxy(nginx)
调度器 web2:tomcat
upstream toms {
server 192.168.2.100:8080;
server 192.168.2.200:8080;
}
测试集群:firefox http://192.168.4.5
两台tomcat做相同操作:
#cd /root/lnmp_soft/session
#cp test.jsp /usr/local/tomcat/webapps/ROOT/
适当修改test.jsp
再次测试:firefox http://192.168.4.5/test.jsp
实验:使用memcached缓存session会话信息
nginx和tomcat的优化的更多相关文章
- Nginx与Tomcat安装、配置与优化
Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...
- Nginx与Tomcat/PHP架构优化的技术分享
PHP性能优化 一般我们是在/usr/local/php5/etc/php-fpm.conf这个文件里面进行相应的配置. 1) 如果设置成static,php-fpm进程数自始至终都是pm ...
- tomcat和nginx相互结合的优化调整
在工作中遇到这样的情况 Tomcat为后台 nginx为反向代理 需要往后台导入数据,由于处理时间过长,导致访问时出现504和500 通过修改tomcat中maxParameterCount=&qu ...
- nginx 与 tomcat 集群 一二事 (0) - 简单介绍
最近看了nginx以及tomcat的集群,通俗的做一下简单总结吧 nginx 是一个http服务器,是由俄罗斯人发明的,目前主流的服务器,作为负载均衡服务器,性能非常好,最高支持5万个并发连接数,在淘 ...
- nginx+keepalived+tomcat之tomcat性能调优
body{ font-family: Nyala; font-size: 10.5pt; line-height: 1.5;}html, body{ color: ; background-color ...
- tomcat 性能优化(转)
tomcat nginx默许的post大小限制 tomcat nginx默认的post大小限制执行大文件上传,或者,大数据量提交时,当提交的数据大小超过一定限制时,发现后台从request取值的代码r ...
- Tomcat学习总结(11)——Linux下的Tomcat安全优化
1.web.xml配置及修改: 站点默认主页: <welcome-file-list> <welcome-file>index.html</welcome-file> ...
- jpress-配合nginx与tomcat安装
目录 1. 前言 2. yum安装tomcat 2. yum安装MySQL 3. 下载JPress并安装 4. 配置tomcat使其可以部署多个网站 5. 安装nginx并配置 6. 将已经安装好的j ...
- Nginx错误日志与优化专题
一.Nginx配置和内核优化 实现突破十万并发 二.一次Nignx的502页面的错误记录 (1)错误页面显示 错误日志: // :: [error] #: * recv() failed (: Con ...
随机推荐
- java学习之路--简单基础的面试题
1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注 ...
- chrome 调试进入 paused in debugger 状态解决办法
今天调试代码的时候总是一刷新就进入 debugger 状态,总是需要按几次 F8 才能进到页面,我那个暴脾气啊,几次后终于是忍不住了,然后再网上找到了解决办法.就如一位网友所说,“Oh God! I ...
- mui 弹窗提醒,form表单基本信息
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- EasyUI Tree节点拖动到指定容器
效果图:将tree节点拖动到指定的DIV中,结果显示节点的id和text 代码: <!DOCTYPE html> <html> <head> <meta ch ...
- 怎么将APE转MP3,APE转MP3的方法
怎样实现APE转MP3的问题呢?很多时候我们从网上所下载的音乐格式,可能并不是我们所需要的音乐格式.如APE音乐格式,那么当我们下载了自己并不需要的APE音乐格式我们应该如何将其转换为自己需要的MP3 ...
- css3之动画属性transform、transition、animation
工作当中,会遇到很多有趣的小动画,使用css3代替js会节省工作量,css3一些属性浏览器会出现不兼容,加浏览器的内核前缀 -moz-. -webkit-. -o- 1.transform rotat ...
- qemu对虚拟机的内存管理(一)
在分析了KVM中对虚拟机各级地址(gva->gpa->hva->hpa)的转换之后,想要知道qemu中又是如何完成各级地址转换的,因此对qemu中对虚拟机内存管理的相关数据结构与源码 ...
- time和datetime和tzinfo
time和datetime模块还有tzinfo (时区)(一直不明白两者的区别,然后摘了两片文章(最后面的两个链接),很清晰...) 一.time模块 常用函数 1. time()函数 time()函 ...
- jquery实现一个标签图标hover到上面的时候显示tooltip
设计图: 解决思路:1.在thumbnailbox.js这个插件中加入tags弹出框显示的内容,一开始让这些内容display:none; 然后再用css画出来一个三角形 实现方法: 知识点:Jque ...
- [转贴] 软件测试职业发展的 A 面和 B 面
[转贴] 软件测试职业发展的 A 面和 B 面 1.所谓的软件测试技术到底包含什么? 梅子:我先来从传统意义上来谈一下测试技术,主要就是测试分析,测试设计,测试管理,测试执行,自动化测试技术,专项测试 ...