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 ...
随机推荐
- ruby 基础知识 - Class 与 Module
原文 1. 因為 Ruby 並沒有「屬性」(property/attribute)這樣的設計,要取用實體變數,需要另外定義的方法才行: class Cat def initialize(name, g ...
- iptables共享上网
1.1 流程大概如下: 1.环境准备 内部服务器B 内网172.16.1.12 ifdown eth0 #首先关闭外网网卡 route add default gw 172.16.1.11 #把上图中 ...
- 谁考了第k名
题目描述: 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩. 输入: 第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k ...
- PHP 标准规范,PSR-1,PSR-2,PSR-3,PSR-4,PSR-5,PSR-6,PSR-7及其他标准
官方网站:https://psr.phphub.org/ 这里还有其他很多规范,但是很多都是英文. github:https://github.com/summerblue/psr.phphub.or ...
- stm8s 引脚电平异常
特别注意: 1.有iic 的引脚为了兼容电平,一般来说都是可忍受电平,同时该引脚也将被去除推挽输出和强输出能力,甚至是上拉,使用时候特别注意,这种引脚在stm8上非常常见 2.stm引脚对电平不匹配非 ...
- 20165311 ch02 课下作业
补充完成课上测试(不能只有截图,要有分析,问题解决过程,新学到的知识点) 完成教材 p97 2.96 2.97,要有完备的
- Python_tkinter(1)_窗口创建与布局
环境:Python 3.7.2 1. 窗口基本创建(窗口标题.窗口大小) import tkinter from tkinter import * # 初始化Tk() root = Tk() # 设置 ...
- C++11 vector使用emplace_back代替push_back
C++11中,针对顺序容器(如vector.deque.list),新标准引入了三个新成员:emplace_front.emplace和emplace_back,这些操作构造而不是拷贝元素.这些操作分 ...
- 万能poi导入功能模板
同时支持2007版本和2003版本,空行过滤,纯数字类型数据格式处理,日期格式处理等 package com.yss.db.util; import com.yss.base.common.excep ...
- cestos7安装zookeeper
zookeeper安装包下载地址http://archive.apache.org/dist/zookeeper/ 一.单机 在/usr目录下 curl -L-O http://archive.apa ...