【CentOS】 Nginx+jdk+tomcat 环境搭建
CentOS Nginx+jdk+tomcat 环境搭建
一、jdk安装
从上面网页中选择适合的jdk下载到/root/目录下。我选择的是jdk-6u20-linux-i586.bin。
下载完后,修改jdk-6u23-linux-i586.bin的文件属性为可执行,然后执行该程序安装JDK:
chmod +x jdk-6u20-linux-i586.bin
./ jdk-6u20-linux-i586.bin
按空格键看完协议,当出现提示“Do you agree to the above license terms?[yes or no] ” 时,输入“yes”。安装完成后,执行以下语句:
mv jdk1.6.0_23 /usr/local/jdk
编辑profile文件 设置开机文件java开机执行环境文件:
vi /etc/profile
在文件的末尾增加如下内容:
JAVA_HOME="/usr/local/jdk"
CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
PATH="$JAVA_HOME/bin:.:$PATH"
CATALINA_HOME="/usr/local/tomcat"
export JAVA_HOME CATALINA_HOME
保存并退出vi,执行以下命令使配置生效:
source /etc/profile
二、tomcat安装
将 apache-tomcat-6.0.35 放到/root/目录中,拷贝到/user/local/目录下,并重命名为tomcat:
mv apache-tomcat-6.0.23 /usr/local/tomcat
建立网页根目录:
mkdir /www
cp -rf /usr/local/tomcat/webapps/* /www/
配置tomcat的server.xml文件:
vim /usr/local/tomcat/conf/server.xml
查找appBase=”webapps”,修改为appBase=”/www”,其中/www 即为网页的根目录。
修改完成后,启动tomcat,默认监听端口为8080:
/usr/local/tomcat/bin/startup.sh
停止tomcat可以使用以下命令:
/usr/local/tomcat/bin/shutdown.sh
注:在执行./startup.sh,或者./shutdown.sh的时候,爆出了Permission denied,
其实很简单,就是在执行tomcat的时候,用户没有权限,而导致无法执行,
用命令chmod 修改一下bin目录下的.sh权限就可以了:
chmod u+x *.sh
再次执行 /usr/local/tomcat/bin/startup.sh (或/usr/local/tomcat/bin/shutdown.sh)就可以了。
三、nginx与tomcat整合
Nginx与tomcat的整合其实就是只要配置好nginx.conf文件就可以了。
查看并修改nginx.conf文件:
vim /usr/local/nginx/conf/nginx.conf
修改后的nginx.conf文件,红色部分为添加的关于tomcat的代码:
user www www;
worker_processes 1;
error_log /home/wwwlogs/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 51200;
events
{
use epoll;
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
client_body_buffer_size 512k;
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
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 256k;
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;
upstream tomcat_server {
server 127.0.0.1:8080;
}
#limit_zone crawler $binary_remote_addr 10m;
server
{
listen 80;
server_name www.test.com;
index index.html index.htm index.jsp index.do default.jsp default.do index.php;
root /home/wwwroot;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$http://$host/$1$2/ permanent;
}
location ~ \.(jsp|jspx|do|wsdl)?$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://tomcat_server;
}
location ~ .*\.(php|php5)?$
{
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
location /status {
stub_status on;
access_log off;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /home/wwwlogs/access.log access;
}
include vhost/*.conf;
}
在配置文件中,静态HTML网页、图片、js、css、Flash等使用Nginx来处理,以便得到更快的速度,文件扩展名为.JSP、.do、wsdl的请求,由Nginx反向代理Tomcat HTTP服务器来处理。
修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:
/usr/local/nginx/sbin/nginx -t
如果屏幕显示以下两行信息,说明配置文件正确:
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully
重新启动nginx:
/usr/local/nginx/sbin/nginx -s reload
nginx启动后,可以访问以下URL中的jsp实例程序,检查jsp程序能否运行。
http://localhost/examples/jsp/
注意:nginx与tomcat的工作原理是由nginx代理tomcat输出网页,因此如果开启了防火墙,防火墙不用打开8080端口,也一样可以访问jsp页面。