Nginx 是一个很不错的高性能Web和反向代理服务器,官方数据可以支持高达50000个并发连接数的响应,支持epoll和kqueue,可以作为负载均衡器,邮件代理服务器并且安装配置比较简单,Bugs非常少,可以平滑对其进行升级.
首先下载 nginx-tomcat.tar.gz
wget http://www.lsanotes.cn/linux/nginx-tomcat.tar.gz
cd nginx-tomcat里面有:
NginxInstall.sh Tomcat.sh Nginxd.sh Remove.sh 四个文件.
分别的作用为:
NginxInstall.sh 安装Nginx
Tomcat.sh 添加后端Tomcat的IP地址和所侦听的端口号
Nginxd.sh 管理Nginx的启动,停止,配置文件正确性检测
Remove.sh 删除所安装的Nginx
具体用法:
一.用具有root权限的用户执行sudo ./NginxInstall.sh 会有一系列的用户交互
sudo ./NginxInstall.sh
1)第一个提示用户输入Nginx的安装路径,如果选择默认可直接回车,默认路径为/usr/local/nginx
2)第二个提示用户输入Nginx的版本号,如果选择默认可直接回车,默认为0.8.28版本
3)第三个提示用户输入域名,如果选择默认可直接回车,默认域名www.lsanotes.cn
4)再接下来和用户交互的是按任意键继续安装,如不想安装可按Ctrl+c中止即可
二.用具有root权限的用户执行sudo ./Tomcat.sh 会有一系列的用户交互
sudo ./Tomcat.sh
1)第一个提示用户输入Nginx配置文件的路径,如果选择默认可直接回车,默认配置文件在/usr/local/nginx/conf/nginx.conf
2)第二个提示用户输入Tomcat所侦听的端口,用户根据自己实际填写,如果选择默认可直接回车,默认为8080端口.
3)第三个提示用户输入要添加Tomcat服务器的个数,如果选择默认可直接回车,默认为1个
4)再接下来和用户交互的是按任意键继续安装,如不想安装可按Ctrl+c中止即可
三.用具有root权限的用户执行Nginxd.sh 这个没有用户交互,默认Nginx的路径为:/usr/local/nginx,如果用户在安装Nginx的时候和这个路径不同请修改脚本即可
1)使用方法很简单看一下–help就会一目了解
sudo ./Nginxd.sh --help
Usage: ./Nginxd.sh (start|stop|restart|configtest)
start) 启动
stop) 停止
restart) 重启
configtest) 检测配置文件的正确性
这里可能会报错
sudo ln -s /usr/lib/libpcre.so.3.12.1 /usr/lib/libpcre.so.0
2)用法(如:启动)
sudo ./Nginxd.sh start
四.用具有root权限的用户执行sudo ./Remove.sh 会产生一次用户交互
sudo ./Remove.sh
1)第一个提示用户输入Nginx的安装路径,如果选择默认可直接回车,默认路径为/usr/local/nginx
2)最后和用户交互的是按任意键确定删除继续
五.安装多个tomcat
注意修改server.xml的几个端口
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444" />
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
六.优化tomcat最大并发数
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="2048" minSpareThreads="100" maxSpareThreads="200"
enableLookups="false" redirectPort="8443" acceptCount="500"
connectionTimeout="20000" disableUploadTimeout="true" />
七.做tomcat集群
两台机器 172.23.254.2 172.23.254.3
做集群需要修改的文件配置有三个地方
1,修改conf/server.xml配置文件
a. 找到Engine标签,加入属性 jvmRoute="worker1"
b.找到Cluster标签,去掉注释,同时修改tcpListenAddress为本机ip 172.23.254.2 (注:这一段Cluster必须放在hosts里面)
2, 修改应用的web.xml
修改web应用里面WEB-INF目录下的web.xml文件,加入标签
<distributable/>
直接加在</web-app>之前就可以了
这个是加入tomcat的session复制的,做tomcat集群必须需要这一步,否则用户的session就无法正常使用。
3, 开启防火墙
这两个tomcat之间必须开启防火墙信任。
分别启动两个tomcat,查看每一个tomcat是否都启动了8080端口以及4001端口
再用netstat –an 查看链接情况
tcp 0 0 172.23.254.2:43320 172.23.254.3:4001 ESTABLISHED
tcp 0 0 172.23.254.2:46544 172.23.254.3:4001 TIME_WAIT
tcp 0 0 172.23.254.2:40118 172.23.254.3:4001 ESTABLISHED
tcp 0 0 172.23.254.2:4001 172.23.254.3:48804 ESTABLISHED
tcp 0 0 172.23.254.2:4001 172.23.254.3:34254 ESTABLISHED
如果两台机器的4001端口分别建立了连接,则说明集群配置成功,可以进行session复制。
八.修改/usr/local/nginx/conf/nginx.conf
参考
#用户组
user www www;
#cpu个数,可以按照实际服务器来计算
worker_processes 2;
pid logs/nginx.pi d;
worker_rlimit_nofile 51200;
events
{
use epoll;
#连接数
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
// 代理配置导入
include /usr/local/nginx/conf/proxy.conf;
keepalive_timeout 120;
tcp_nodelay on;
#设定负载均衡列表
upstream www.chenjiping.com {
server 192.168.1.34:8080;
server 192.168.1.34:8081;
}
#设定虚拟主机
server
{
listen 80;
server_name www.chenjiping.com;
location / {
proxy_redirect off;
proxy_pass http://www.chenjiping.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
log_format localhost:80_log '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /usr/local/nginx/logs/localhost:80.log localhost:80_log;
}
}
主要在配置proxy与upstream
Upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器。
ubuntu 下 nginx-tomcat 整合
最新推荐文章于 2023-04-22 15:55:22 发布