因为在网上发现系统性、严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Nginx+Tomcat+Mysql+FTP的操作文档,梳理记录如下,特别是在实践中碰到的各种问题和容易出错的地方,都做了重要标注和提醒(踩过的那些坑,我都特别标注出来);希望对于那些想要系统地完整搭建Linux环境的程序员们一个系统性的参考。但因大部分都是边搭建边记录下的操作,必定有所疏漏,还望见谅; 如有问题和意见请帮忙在后面的评论中指出,万分感谢!另整个搭建的过程中参考了网上许多优秀博主的优秀实践,在文中末尾或者其他适当的地方都有所标注,如有必要,你可以按参考的链接阅读参考的原文章。本文档一共分为6篇,这6个部分分别是:
1、(一)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - FTP安装
2、(二)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 防火墙配置
3、(三)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Nginx环境搭建
4、(四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合
5、(五)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Mysql 安装
6、(六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 一些常用命令总结
这篇系列性文章将会在以后的实践中持续地做修正和更新。
(在整理和记录这些文档的时候,对于我这个曾经从来不写博客的程序员来说,我发现的确收获良多,首先最重要的是对我的知识结构进行了一次重要的梳理和总结;另外,让我的思维和逻辑更加缜密;第三,强化和加深记忆;四,共享和分享的精神。
最后,希望对你有用。)
(四)安装Tomcat和JDK 以及 Nginx与Tomcat整合
安装Tomcat和JDK
JDK:server-jre-7u75-linux-x64.gz
Tomcat: apache-tomcat-7.0.59.tar.gz
1、上传apache-tomcat-7.0.59.tar.gz和server-jre-7u75-linux-x64.gz至/usr/local
2、执行如下命令安装tomcat:
1.#cd /usr/local
2.#tar -zxvf apache-tomcat-7.0.59.tar.gz
解压完成后将apache-tomcat-7.0.59重命名为tomcat7
3、创建tomcat用户,用来运行tomcat服务:
在生产环境用 root是不安全的,所以 :
#useradd -s /sbin/nologin tomcat
#chown -R tomcat:tomcat /usr/local/tomcat7
3、执行如下解压安装JDK:
1、查看目前系统的jdk,rpm -qa | grepjdk
卸载掉自带openjdk:
[root@localhost~]# yum -y remove java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
[root@localhost~]# yum -y remove java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
2.# tar –zxvf server-jre-7u75-linux-x64.gz
解压完成后将server-jre-7u75重命名为jdk7
4、配置环境变量:
编辑/etc下的profile文件vi /etc/profile,加上如下内容:
JAVA_HOME="/usr/local/jdk7"
CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
PATH=".:$PATH:$JAVA_HOME/bin"
#Tomcat home
CATALINA_HOME="/usr/local/tomcat7"
export JAVA_HOME CATALINA_HOME
5、source/etc/profile使设置生效。(或者#. /etc/profile或者#sh /etc/profile!或者#reboot命令重启Linux),
java –version查看jdk是否设置成功
6、启动tomcat: [root@localhostbin]# /usr/local/tomcat7/bin/startup.sh
并输入http://localhost:8080,如果看到猫页面即tomcat和jdk安装成功
7、新建文件目录/www为网站存放目录,设置server.xml文件,在Host name="localhost"处将appBase=的指向路径改为”/www”
8、创建index.jsp至/www/,内容为:“My web!”
9、设置开机启动Tomcat
[root@localhost ~]#vi/etc/init.d/tomcat(将新建文件,输入下面的代码)
#!/bin/bash
#
# tomcatd This shell script takes care of starting and stopping
# standalone tomcat
#
# chkconfig: 345 91 10
# description: tomcat service
# processname: tomcatd
# config file:
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] &&exit 0
prog=tomcatd
export JAVA_HOME=/usr/local/jdk7
export CATALINA_HOME=/usr/local/tomcat7
PATH=$PATH:$JAVA_HOME/bin
STARTUP=$CATALINA_HOME/bin/startup.sh
SHUTDOWN=$CATALINA_HOME/bin/shutdown.sh
if [ ! -f $CATALINA_HOME/bin/startup.sh ]
then
echo "CATALINA_HOME for tomcatd not available"
exit
fi
start() {
#Start daemons.
echo-n $"Startting tomcat service: "
daemon $STARTUP
RETVAL=$?
return $RETVAL
}
stop() {
#Stop daemons.
echo -n $"Stoping tomcat service: "
$SHUTDOWN
RETVAL=$?
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
RETVAL=$?
;;
status)
status $prog
RETVAL=$?
;;
*)
echo$"Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
:wq 保存并退出
同样的,设置文件的访问权限:
chmod a+x /etc/init.d/tomcat (a+x ==> all user can execute 所有用户可执行)
(chmod 755 /etc/init.d/tomcat(当前用户读写执行,其它读+执行))
同样的,将此命令加入到rc.local文件中,这样开机的时候tomcat就默认启动了
vi /etc/rc.local
加入一行 /etc/init.d/tomcat start 保存并退出,下次重启会生效
(也可以使用如下方式:chkconfig --add tomcat)
参考:
chmod755 /etc/init.d/tomcat(当前用户读写执行,其它读+执行)
chkconfig--add tomcat
chkconfig--list tomcat
显示:
tomcat 0:off1:off 2:on 3:on 4:on 5:on 6:off ←确认2~5为on状态就OK
启动Tomcat:
service tomcatstart
Nginx与Tomcat整合
实现的效果和达到的目的为:
1、有两个域名www.aaa.com www.bbb.com 分别对应两个两个不同的网站,但是公用同一个Nginx和Tomcat服务器;
2、所有的JSP等动态内容转发到Tomcat处理,js、图片等直接由Nginx负责处理;
3、上传的图片不在应用的根目录下面,需要另外指定转发(Nginx Alias 虚拟目录)
Tomcat 配置:server.xml
<Host name="www.aaa.com" appBase="/data/www"
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="/data/www/aaa" debug="0"reloadable="true"></Context>
…. ….
<Host name="www.bbb.com" appBase="/data/www"
unpackWARs="true" autoDeploy="true">
<Context path="/"docBase="/data/www/bbb" debug="0" reloadable="true"></Context>
… ….
编辑Nginx安装目录下conf文件夹中的nginx.conf
server {
listen 80;
server_name www.aaa.com aaa.com;
root/data/www/aaa; #设定网站的资源存放路径
indexindex.html index.htm index.jsp;
#charset utf-8;
access_log /var/log/nginx/aaa.access.log main;
location / {
index index.html index.htm index.jsp;
root /data/www/aaa;
proxy_set_header Host www.aaa.com; #此参数指向tomcatserver.xml中配置的Host name,以转发给不同的Host处理.
proxy_pass http://127.0.0.1:8080;
}
location ~ /Image/ { #只有这种(加“~”)才奏效
root /data/www/;
}
#location ~ .*.jsp$ { #所有jsp的页面均交由tomcat处理
# index index.jsp;
# proxy_pass http://127.0.0.1:8080; #转向tomcat处理
# }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #设定访问静态文件直接读取不经过tomcat
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
…….
…….
}
server {
listen 80;
server_name www.bbb.com;
root/data/www/bbb; #设定网站的资源存放路径
indexindex.html index.htm index.jsp;
#charset utf-8;
access_log /var/log/nginx/bbb.access.log main;
location / {
index index.html index.htm index.jsp;
root /data/www/bbb;
proxy_set_header Host www.bbb.com;
proxy_pass http://127.0.0.1:8080;
}
#location ~ .*.jsp$ { #所有jsp的页面均交由tomcat处理
# index index.jsp;
# proxy_pass http://127.0.0.1:8080; #转向tomcat处理
# }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #设定访问静态文件直接读取不经过tomcat
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
… ….
重启tomcat
[root@localhost BlueSky]# service tomcatrestart
重启nginx
[root@localhost BlueSky]# service nginx restart
http://www.blogjava.net/libin2722/articles/355631.html
http://www.ha97.com/5194.html《总结:Nginx配置文件nginx.conf详解》
http://jingyan.baidu.com/article/ff41162593636412e5823752.html
http://wuyanzan60688.blog.163.com/blog/static/127776163201342111255841/
Nginx 设置 alias 实现虚拟目录 alias 与 root 的用法区别 http://down.chinaz.com/server/201111/1382_1.htmWINDOWS 2008Server配置nginx 反向代理服务器http://www.cnblogs.com/dyllove98/p/4093624.html
参考文献:
http://www.osyunwei.com/archives/8867.html
http://www.linuxidc.com/Linux/2013-09/89768.htm
http://www.myhack58.com/Article/sort099/sort0102/2011/29463.htm
http://www.blogjava.net/libin2722/articles/355631.html
http://blog.csdn.net/yincg/article/details/8756711
http://blog.csdn.net/dzl84394/article/details/8202361
http://www.lvtao.net/server/centos-nginx-tomcat-jdk.html
http://491569462-qq-com.iteye.com/blog/1948433tomcat自动启动
http://www.ha97.com/5194.html《总结:Nginx配置文件nginx.conf详解》
因为在网上发现系统性、严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Nginx+Tomcat+Mysql+FTP的操作文档,梳理记录如下,特别是在实践中碰到的各种问题和容易出错的地方,都做了重要标注和提醒(踩过的那些坑,我都特别标注出来);希望对于那些想要系统地完整搭建Linux环境的程序员们一个系统性的参考。但因大部分都是边搭建边记录下的操作,必定有所疏漏,还望见谅; 如有问题和意见请帮忙在后面的评论中指出,万分感谢!另整个搭建的过程中参考了网上许多优秀博主的优秀实践,在文中末尾或者其他适当的地方都有所标注,如有必要,你可以按参考的链接阅读参考的原文章。本文档一共分为6篇,这6个部分分别是:
1、(一)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - FTP安装
2、(二)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 防火墙配置
3、(三)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Nginx环境搭建
4、(四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合
5、(五)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Mysql 安装
6、(六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 一些常用命令总结
这篇系列性文章将会在以后的实践中持续地做修正和更新。
(在整理和记录这些文档的时候,对于我这个曾经从来不写博客的程序员来说,我发现的确收获良多,首先最重要的是对我的知识结构进行了一次重要的梳理和总结;另外,让我的思维和逻辑更加缜密;第三,强化和加深记忆;四,共享和分享的精神。
最后,希望对你有用。)