测试脚本(服务器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的优化的更多相关文章

  1. Nginx与Tomcat安装、配置与优化

    Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...

  2. Nginx与Tomcat/PHP架构优化的技术分享

    PHP性能优化 一般我们是在/usr/local/php5/etc/php-fpm.conf这个文件里面进行相应的配置. 1)       如果设置成static,php-fpm进程数自始至终都是pm ...

  3. tomcat和nginx相互结合的优化调整

    在工作中遇到这样的情况 Tomcat为后台 nginx为反向代理 需要往后台导入数据,由于处理时间过长,导致访问时出现504和500  通过修改tomcat中maxParameterCount=&qu ...

  4. nginx 与 tomcat 集群 一二事 (0) - 简单介绍

    最近看了nginx以及tomcat的集群,通俗的做一下简单总结吧 nginx 是一个http服务器,是由俄罗斯人发明的,目前主流的服务器,作为负载均衡服务器,性能非常好,最高支持5万个并发连接数,在淘 ...

  5. nginx+keepalived+tomcat之tomcat性能调优

    body{ font-family: Nyala; font-size: 10.5pt; line-height: 1.5;}html, body{ color: ; background-color ...

  6. tomcat 性能优化(转)

    tomcat nginx默许的post大小限制 tomcat nginx默认的post大小限制执行大文件上传,或者,大数据量提交时,当提交的数据大小超过一定限制时,发现后台从request取值的代码r ...

  7. Tomcat学习总结(11)——Linux下的Tomcat安全优化

    1.web.xml配置及修改: 站点默认主页: <welcome-file-list> <welcome-file>index.html</welcome-file> ...

  8. jpress-配合nginx与tomcat安装

    目录 1. 前言 2. yum安装tomcat 2. yum安装MySQL 3. 下载JPress并安装 4. 配置tomcat使其可以部署多个网站 5. 安装nginx并配置 6. 将已经安装好的j ...

  9. Nginx错误日志与优化专题

    一.Nginx配置和内核优化 实现突破十万并发 二.一次Nignx的502页面的错误记录 (1)错误页面显示 错误日志: // :: [error] #: * recv() failed (: Con ...

随机推荐

  1. mybatis12--一级缓存

    验证一级缓存的存在 对应的实体类 /** *学生对应的实体类 */ public class Student { private Integer sId; private String sName; ...

  2. redis(四)--简单实现Redis缓存中的排序功能

    在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发的应 ...

  3. mac iterm 提示符序列调整

    mac终端提示符显示绝对路径太长了,能不能提示符不显示全路径呢?自定义提示符前缀呢? mac终端命令换行覆盖问题也顺带解决. 编辑~/.bash_profile export PS1='' 参数: 序 ...

  4. 脚本一键部署lnmp

    [root@ycj ~]# wget -c http://soft.vpser.net/lnmp/lnmp1.1-full.tar.gz && tar zxf lnmp1.1-full ...

  5. [No0000D1]WPF—TreeView无限极绑定集合形成树结构

    1.如图所示:绑定树效果图 2.前台Xaml代码: <Window x:Class="WpfTest.MainWindow" xmlns="http://schem ...

  6. Chrome 调试技巧

    Chrome 调试技巧 1.alert 这个不用多说了,不言自明. 可参考:https://www.cnblogs.com/Michelle20180227/p/9110028.html 2.cons ...

  7. WebService,ESB笔记

    一.WebService是什么? WebService,是RPC的一样实现方式. RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算 ...

  8. fiddler的一些记录

    通过execaction.exe可以给fiddler发命令,控制抓包开始和停止 https://stackoverflow.com/questions/29916508/start-and-stop- ...

  9. 解决秒杀活动高并发出现负库存(Redis)

    商城在秒杀活动开始时,同时有好多人来请求这个接口,即便做了判断库存逻辑,也难免防止库存出现超卖,造成损失 Django中的ORM本身就对数据库做了防范,但再过亿级访问也扛不住 下面利用Redis的过载 ...

  10. WCF中的ServiceHost初始化两种方式

    1 代码方式 using(ServiceHost host=new ServiceHost(typeof(HelloWordService))) { host.AddServiceEndpoint(t ...