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>


分享到:


相關文章: