Centos7下部署jdk+mysql+双tomca+nginx负载均衡+vsftp环境说明

一、安装jdk

下载jdk-8u60-linux-x64.rpm,然后上传到服务器/opt/下,

cd /opt/

rpm -ivh jdk-8u60-linux-x64.rpm

然后增加环境变量:

vi /etc/profile

增加下面代码

#set env

JAVA_HOME=/usr/java/jdk1.8.0_77

JRE_HOME=/usr/java/jdk1.8.0_77/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

:wq

二、安装tomcat

将apache-tomcat-8.5.14.tar.gz上传到/opt/下

tar -zxvf apache-tomcat-8.5.14.tar.gz

将解压的目录apache-tomcat-8.5.14修改为tomcat0

然后

tar -zxvf apache-tomcat-8.5.14.tar.gz

将解压的目录apache-tomcat-8.5.14重命名为tomcat1

然后优化配置

1、tomcat默认使用的bio模式,我们要承担高并发的话,需要改为nio

修改tomcat1/conf/server.xml

将< <connector>

connectionTimeout="20000"

redirectPort="8443" />

改为:

<connector>

connectionTimeout="20000" maxThreads="1000" minSpareThreads="100" maxSpareThreads="300" acceptCount="1000" redirectPort="8443" disableUploadTimeout="true" enableLookups="false" />

2、禁用ajp协议

找到server.xml文件中的<connector>一行删除掉

3、配置启动环境 及优化Jvm

修改/home/www/tomcat1/bin/catalina.sh

找到行# OS specific support. $var _must_ be set to either true or false.在其下面添加以下代码:

export CATALINA_BASE=/opt/tomcat0

export CATALINA_HOME=/opt/tomcat0

JAVA_OPTS="-Xms4096m -Xmx4096m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=256m"

上面三行,第1、2行是设置环境变量,第三行是设置jvm内存参数

文件保存后

启动第1个tomcat

cd /opt/tomcat0/bin

./startup.sh

启动第2个tomcat

cd /opt/tomcat1/bin

./startup.sh

解决在centos服务器上启动过慢的问题:

找到 $JAVA_HOME/jre/lib/security/java.security 这个文件,找到里面的securerandom.source=file:/dev/random修改为securerandom.source=file:/dev/urandom

配置tomcat远程管理:

打开文件:/opt/tomcat0/conf/tomcat-users.xml

在<tomcat-users>中添加如下代码 :/<tomcat-users>

<role>

<user>

打开文件:/opt/tomcat0/webapps/manager/META-INF/context.xml

找到<valve>

allow="127\\.\\d+\\.\\d+\\.\\d+|::1|0:0:0:0:0:0:0:1" />将此行删除

配置好后,重启tomcat,即可通过网址:http://你的ip:8080/manager/html管理tomcat了。

三、安装mysql

我这里服务器用的阿里云的,所以安装的时候用的阿里的下载地址

安装脚本如下:

下载安装包:

wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/mysql/mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

解压:

tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.21-linux-glibc2.5-x86_64/* /opt/mysql

安装依赖文件:

yum install -y perl-Module-Install.noarch

yum install libaio*

groupadd mysql

useradd -g mysql -s /sbin/nologin mysql

/opt/mysql/scripts/mysql_install_db --datadir=/opt/mysql/data/ --basedir=/opt/mysql --user=mysql

chown -R mysql:mysql /opt/mysql/

chown -R mysql:mysql /opt/mysql/data/

chown -R mysql:mysql /opt/log/mysql

\\cp -f /opt/mysql/support-files/mysql.server /etc/init.d/mysqld

sed -i 's#^basedir=$#basedir=/opt/mysql#' /etc/init.d/mysqld

sed -i 's#^datadir=$#datadir=/opt/mysql/data#' /etc/init.d/mysqld

修改配置:

cat > /etc/my.cnf <

[client]

port = 3306

socket = /tmp/mysql.sock

[mysqld]

port = 3306

socket = /tmp/mysql.sock

skip-external-locking

log-error=/opt/log/mysql/error.log

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

log-bin=mysql-bin

binlog_format=mixed

server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

expire_logs_days = 5

max_binlog_size = 1000M

END

设置开机启动:

/sbin/chkconfig mysqld on

启动mysql:

chmod 755 /etc/init.d/mysqld

/etc/init.d/mysqld start

修改linux文件数限制:

将以下脚本存为nolimi.sh,然后执行即可

#!/bin/sh

if cat /etc/security/limits.conf | grep "* soft nofile 65535" > /dev/null;then

echo ""

else

echo "* soft nofile 65535" >> /etc/security/limits.conf

fi

if cat /etc/security/limits.conf | grep "* hard nofile 65535" > /dev/null ;then

echo ""

else

echo "* hard nofile 65535" >> /etc/security/limits.conf

fi

修改mysql配置文件/etc/my.cnf,在[mysqld]标签里添加以下代码:max_connections=3600

修改mysql密码:

update user set Password=password('123456') where User='root';

修改后执行:

flush privileges;

四、安装vsftp

1、安装vsftpd

yum -y install vsftpd

2、添加ftp用户

groupadd www

useradd -g www -M -d /home/www -s /sbin/nologin www &> /dev/null

passwd www

chown -R www:www /home/www

3、配置ftp

打开etc/vsftpd.conf

将chroot_list_enable=NO改为chroot_list_enable=YES

设置被动模式端口

pasv_min_port=3333

pasv_max_port=3333

对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:

Centos7下部署jdk+mysql+双tomca+nginx负载均衡+vsftp环境说明

启动vsftp服务:service vsftpd start

修改用户www的默认主目录 :

vi /etc/passwd

将www:x:1001:1001::/home/www/:/sbin/nologin一行修改为:

www:x:1001:1001::/opt/:/sbin/nologin

五、安装nginx

安装nginx

添加用户及组

groupadd www

useradd -g www www

安装必要的模块:

yum -y install pcre-devel

yum -y install openssl openssl-devel

yum install -y zlib zlib-devel

yum install gcc-c++

下载安装包:wget http://nginx.org/download/nginx-1.12.0.tar.gz

tar -zxvf nginx-1.12.0.tar.gz

cd nginx-1.12.0

./configure --user=www \\

--group=www \\

--prefix=/usr/local/nginx \\

--with-http_stub_status_module \\

--without-http-cache \\

--with-http_ssl_module \\

--with-http_gzip_static_module

make

make install

进入/usr/local/nginx查看文件是否存在conf、sbin、html文件夹,若存在则安装成功

chmod 755 /usr/local/nginx/sbin/nginx

优化配置:

编辑/usr/local/nginx/conf/nginx.conf

内容如下:

user www www;

worker_processes 4;

error_log /opt/log/nginx/error.log crit;

pid /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.

worker_rlimit_nofile 65535;

events

{

use epoll;

worker_connections 65535;

}

http {

include mime.types;

default_type application/octet-stream;

#charset gb2312;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 8m;

sendfile on;

tcp_nopush on;

keepalive_timeout 60;

tcp_nodelay on;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on;

#limit_zone crawler $binary_remote_addr 10m;

log_format '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

include /usr/local/nginx/conf/vhosts/*.conf;

}

添加虚拟主机配置文件,在/usr/local/nginx/conf/vhosts/目录下编辑www.conf,内容如下:

server {

listen 80;

server_name zx.sdchouniu.com;

index index.html index.htm index.jsp;

root /opt/tomcat0/webapps/ROOT;

location / {

proxy_http_version 1.1;

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://127.0.0.1:8080;

}

location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

}

location ~ .*\\.(js|css)?$

{

expires 1h;

}

}

启动nginx

cd /usr/local/nginx/sbin/

./nginx

快速停止:

./nginx -s stop

完整停止:

./nginx -s quit

重新加载:

./nginx -s reload

检查nginx配置:

./nginx -t

负载均衡配置:

在/usr/local/nginx/conf/nginx.conf中增加下面代码:

upstream www_balance{ server 127.0.0.1:8080 weight=5; #tomcat1的端口和权重 server 127.0.0.1:8088 weight=5; #tomcat2的端口和权重}

然后修改vhost/www.conf中的proxy_pass如下:

proxy_pass http://www_balance;

修改后重启即可生效

以上配置服务启动后,可以在服务器通过 ps -aux命令查看到相关进程,如下图所示:

Centos7下部署jdk+mysql+双tomca+nginx负载均衡+vsftp环境说明

/<valve>

/<connector>

/<connector>


分享到:


相關文章: