tomcat:
1. tomcat安装启动的二个重要变量:JAVA_HOME和CATALINA_HOME
JAVA_HOME:让系统知道JAVA环境以及JAVA库文件位置
CATALINA_HOME:tomcat启动时需设置的tomcat目录变量
JAVA_HOME=/usr/java/jdk_xxxxx
PATH=$JAVA_HOME/bin:$PATH
2.可安装APR增强tomcat性能:tomcat-native.tar.gz(APR实现包)
解压tomcat-native包
./config --with-apr=/usr --with-ssl
make && make install
nginx:
1、apache 所有模块都支持动、静态编译,nginx模块都是静态编译,
2、nginx支持fcgi比apache好,
3、nginx支持epoll (linux)kqueue(BSD),apache不支持
4、nginx处理静态文件,索引文件效率非常高
5、nginx处理并发能力强
6、nginx由内核和模块组成,内核仅仅负责通过查找配置文件将客户端的请求映射到一个location block,而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作
7、nginx分为单工作进程和多工作进程,默认为单工作进程
8、支持rewrite重写规则,能够根据域名和URL的不同将HTTP分发到后端不同的服务器群组上
9、支持GZIP压缩,节省宽带!
安装nginx:
1、需提前安装gcc、openssl-devel、pcre-devel(支持http rewrite模块)、zlib-devel,另memcached是一个C/S架构缓存服务器,nginx如需使用它需开启他自身的memcached模块,PHP如需使用则需安装memcached的PHP客户端memcache,C语言的memcached客户端为libmemcache.
libevent也是一个nginx依赖的API编程库,(安装开发库默认会安装)它可以提升网络event事件等方面能力,如epoll
groupadd nginx
useradd -g nginx nginx
./configure --with-http_stub_status_module --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
2、nginx配置文件 main指令位于最高层,在main层下面有events、http等层级,然后在http层级里又包含server层,即server block,server block中又分为location层,并且一个server block中可以包含多个location block
3、配置文件四个部分:main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)、location(URL匹配特定位置的设置)
4、upstream是nginx http upstream模块,支持四种调度算法:轮询(默认)weight ip_hash fair url_hash 可以upstream模块中指定算法
5、在upstream模块的server命令后也可指定每个后端负载均衡服务器的状态:down backup max_fils fail_timeout(当负载调度算法为ip_hash时,后端服务器在负载均衡中的状态不能是weight和backup)
6、启用了stub_status模块后可以通过http://ip/nginxstatus来查看nginx运行状态
7、fastcgi主要的优点就是把动态语言和http server分离开来,使http server专一处理静态请求和转发动态请求,fastcgi:spawn-fcgi与php-fpm 都是第三方的fastcgi进程管理器,http server都可通过他们来对PHP进行解析。推荐使用nginx+php+php-fpm来对php进行解析。
8、nginx不支持对外部的程序直接调用或解析,所有的外部程序(包括php)必须通过fastcgi接口来调用,
nginx性能优化:
1、编译安装过程优化,取消debug模式编译可以减小编译后的文件大小
2、添加GOOGLE的tcmalloc库优化nginx性能,TCMalloc在内存分配效率和速度上高很多,可以提高服务并发能力,安装google-perftools,(另64 位系统另需先安装libunwind库!)
3、nginx linux内核参数优化
如果是用于apache或nginx等web服务器,或者nginx的反向代理,一般可修改如下几个linux内核参数:
net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1
表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.ip_local_port_range = 1024 65000
表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_syncookies=1
增强抗syn flood能力 ,防范SYN攻击
nginx+tomcat整合: (1、动态页面和静态页面分离 2、多个tomcat负载均衡)
nginx处理静态html、css、图片、flash等文件,扩展名为.jsp\.do等文件请求,由nginx反向代理到tomcat处理,
或者直接定义一个虚拟主机,通过二个location指令分别指定nginx处理静态页面,tomcat处理.jsp/.do文件
upstream tomcat_server{
server 127.0.0.1:8080;
}
server
{
listen 80
server_name www.yourdomain.com;
index index.html index.htm index.jsp default.jsp index.do default.do;
root /data/www/htdocs
location ~ \.(jsp|jspx|do)?$ { ##匹配以jsp等结尾的文件
proxy_pass http://tomcat_server; ##nginx tomcat整合的时候设置jsp等转发到代理的tomcat去处理。
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
nginx+keepalived +nginx/tomcat +mysql 复制
keepalived 安装配置:
./configure --prefix=/usr/local/keepalived
make && make install
下面为将keepalived做成服务模式,方便启动关闭
cp /usr/local/keepalived/sbin/keepalived /usr/sbin
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
配置文件:
mkdir /etc/keepalived
vim /etc/keepalived/keepalived.conf(上面做成服务模式用service启动关闭后,应在这里新建/etc/keepalived/keepalived.conf这个文件做配置文件,而不是使用原来keepalived安装目录conf下的keepalived.conf文件,应该cp过去再做修改)
主要修改参数:(主服务器)
vrrp_instance VI_1 {
stat MASTER ##从服务器设置为BACKUP
interface eth0 ##网卡接口
virtual_router_id 51
mcast_src_ip 192.168.3.89 ##本地nginx IP地址
priority 100 ##优先级 MASTER的优化先级应大于BACKUP的
}
virtual_ipaddress {
192.168.3.23 ##keepalived虚拟出来的前端访问IP 主从服务器应设置为一样
{