Centos 下JBoss as7 + jdk+mysql+nginx 网站配置

news/2024/5/9 18:54:09/文章来源:https://blog.csdn.net/xiangqiao123/article/details/38049383

网站基本框架设计好了,下来就开始搭建服务器框架了 。

服务器组选的是 VPS,为什么选VPS,因为我们除了要使用公共的web服务外,还要定制一些系统的软件和服务,自定义上报端口等。除了自己承包整机服务器外,VPS无疑是最佳选择了。

 

机器配置

CentOS Linux 6.2  
Linux 2.6.18-274.7.1.el5.028stab095.1 on i686  
Intel(R) Xeon(R) CPU E5645 @ 2.40GHz, 1 cores 

内存2G 

硬盘100G 

 

网站架构见我之前的帖子:http://www.cnblogs.com/inteliot/archive/2012/04/17/2454518.html 

选用nginx主要做静态、动态内容的分离和负载均衡。jboss完成 jsp和后台的java代码的环境支持。

为什么不选tomcat而是JBoss,上网google了一圈,似乎Jboss要好于tomcat,所以就想试试效果

JBoss AS7 支持 集群管理,有standalone模式和domainserver模式,domainserver模式支持多级分层架构,可以支持大的企业级应用。

我们的生产环境采用standalone。 

mysql

 

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-5.5.24-1.linux2.6.x86_64.tar/from/http://ftp.jaist.ac.jp/pub/mysql/

 

查看已安装的包:

rpm -qa | grep mysql 

强制性卸载老版本:

rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64 

安装新版本: 

rpm -ivh MySQL-client-5.5.24-1.linux2.6.x86_64.rpm MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm MySQL-server-5.5.24-1.linux2.6.x86_64.rpm

说明:rpm安装方式默认是没有my.cnf的  

1.错误:

 

error: Failed dependencies:
libaio.so.1()(64bit) is needed by MySQL-server-5.5.24-1.linux2.6.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.5.24-1.linux2.6.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.5.24-1.linux2.6.x86_64 

解决:

下载 libaio-0.3.107-10.el6.x86_64.rpm 

安装:rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

或者:

# yum install libaio

JDK 

下载页面http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html 

解压

修改系统环境变量

vi /etc/profile

在末尾加入 

JAVA_HOME=/usr/local/jdk1.7.0_03/
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib:$CLASSPATH   

立即生效 

source  /etc/profile

检测是否安装成功 

java -version  
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 
1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

Jboss AS7

wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.tar.gz

解压完 运行

./bin/standalone.sh 

错误一:安装完jdk后,没有配置java环境变量,导致java调用失败,可以运行 java --version,检测是否ok 

错误二:jboss7.1 standalone 模式正常,domainserver模式跑步起来,出现错误:
[Host Controller] Error occurred during initialization of VM
[Host Controller] Could not reserve enough space for object heap
[Host Controller] Error: Could not create the Java Virtual Machine.
[Host Controller] Error: A fatal exception has occurred. Program will exit.

原因:Xmx 和 MaxPermSize 过大,预留失败

修改:/usr/local/jboss/bin/domain.conf
JAVA_OPTS="-Xms32m -Xmx64m -XX:MaxPermSize=64m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

同时需要在 /etc/profile 下添加

export _JAVA_OPTIONS="-Xms32m -Xmx64m -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:NewSize=10m -XX:MaxNewSize=10m -XX:SurvivorRatio=6 -XX:TargetSurvivorRatio=80 -XX:+CMSClassUnloadingEnabled"

添加完后 需要 source /etc/profile

修改完后,jboss 初步运行起来了:

 最后,开机自启动

在 /etc/rc.d/rc.local 加上启动命令就可以了

NginX 安装

 一、准备工作

下载OpenSSL :

wget http://openssl.org/source/openssl-1.0.1.tar.gz

下载pcre

wget http://downloads.sourceforge.net/project/pcre/pcre/8.30/pcre-8.30.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpcre%2Ffiles%2Fpcre%2F8.30%2F&ts=1336739904&use_mirror=cdnetworks-kr-2 

wget http://downloads.sourceforge.net/project/libpng/zlib/1.2.6/zlib-1.2.6.tar.gz?r=&ts=1336743664&use_mirror=cdnetworks-kr-1  

分别解压到

/usr/openssl-1.0.1/   

/usr/zlib-1.2.6/  

/usr/pcre-8.30/ 

二、安装nginx 包

wget http://nginx.org/download/nginx-1.0.14.tar.gz 

1. 配置 和编译 

./configure --user=www --group=www --prefix=/data/web/nginx --add-module=../ngx_cache_purge-2.0 --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=../pcre-8.30/ --with-openssl=../openssl-1.0.1/ --with-zlib=../zlib-1.2.6/

make && make install 

错误:

 

复制代码
cd /usr/openssl-1.0.1/ \
    && make clean \
    && ./config --prefix=/usr/openssl-1.0.1//.openssl no-shared  no-threads \
    && make \
    && make install LIBDIR=lib
make[2]: Entering directory `/usr/openssl-1.0.1'
Makefile is older than Makefile.org, Configure or config.
Reconfigure the source tree (via './config' or 'perl Configure'), please.
make[2]: *** [Makefile] Error 1
make[2]: Leaving directory `/usr/openssl-1.0.1'
make[1]: *** [/usr/openssl-1.0.1//.openssl/include/openssl/ssl.h] Error 2
make[1]: Leaving directory `/home/zcj/nginx/nginx-1.0.14'
make: *** [build] Error 2
复制代码

 

解决:

错误提示,进入openssl 目录,执行

./config 

回到nginx目录,重新 make

错误

 

复制代码
make[2]: Entering directory `/usr/pcre-8.30'
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /usr/pcre-8.30/missing --run aclocal-1.11 -I m4
aclocal-1.11: couldn't open directory `m4': No such file or directory
make[2]: *** [aclocal.m4] Error 1
make[2]: Leaving directory `/usr/pcre-8.30'
make[1]: *** [/usr/pcre-8.30//.libs/libpcre.a] Error 2
make[1]: Leaving directory `/home/zcj/nginx/nginx-1.0.14'
make: *** [build] Error 2
复制代码

解决 :在pcre 目录下创建空目录 m4 

错误

libtool: You should recreate aclocal.m4 with macros from libtool 2.4
libtool: and run autoconf again.
make[2]: *** [pcre_byte_order.lo] Error 63
make[2]: Leaving directory `/usr/pcre-8.30'
make[1]: *** [/usr/pcre-8.30//.libs/libpcre.a] Error 2
make[1]: Leaving directory `/home/zcj/nginx/nginx-1.0.14'

make: *** [build] Error 2 

解决: 用系统安装的libtool 执行文件替换pcre 下的libtool  

cp -f /usr/bin/libtool /usr/pcre-8.30/

 

OK。成功

2. 添加开机自启动

vi /etc/rc.d/rc.local

添加开机运行命令: /usr/local/webserver/nginx/sbin/nginx

三、运行nginx

运行前,先卸载httpd :rpm -e httpd --nodeps

运行nginx :/usr/local/webserver/nginx/sbin/nginx

1. 错误: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

解决

添加链接 ln -s /usr/local/lib/libpcre.so.1 /lib/libpcre.so.1

x64环境下是 ln -s /usr/local/lib/libpcre.so.1 /lib64/libpcre.so.1

2. 错误:[emerg]: getpwnam(“www”) failed

原因 :配置时用的用户和组不存在

解决

/usr/sbin/groupadd -f www

/usr/sbin/useradd -g www www

四、 配置nginx

1. 配置nginx日志目录及网站根目录

mkdir -p /var/log/nginx
chmod +w /var/log/nginx
mkdir -p /var/www/server1
chmod +w /var/www/server1

2. 修改 conf文件 

 vi /usr/local/webserver/nginx/conf/nginx.conf  

 

复制代码
user  www www;
worker_processes 8;

error_log  /var/log/nginx/nginx_error.log  crit;

pid        /usr/local/webserver/nginx/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; 

  upstream jboss_svr{

    server 127.0.0.1:8080;
  } 

  server
  {

    listen       0.0.0.0:8088;
    index index.html index.htm index.php;
    root  /var/www/server1; 

    #limit_conn   crawler  20; 

    location ~ .*\.(jsp|jspx|do)?$
    {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_pass http://jboss_svr;
    } 

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      expires      30d;
    } 

    location ~ .*\.(js|css)?$
    {
      expires      1h;
    }

    location ~* .*\.sh$ {
        return 403;
    } 
    log_format  server1_log  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" $http_x_forwarded_for';

    access_log  /var/log/nginx/server1.log  server1_log;
  }
}

复制代码

五. 在不停止Nginx服务的情况下平滑变更Nginx配置

1. 修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:

/usr/local/webserver/nginx/sbin/nginx -t

如果屏幕显示以下两行信息,说明配置文件正确:

the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok

the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully

2. 平滑重启:

对于Nginx 0.8.x版本,现在平滑重启Nginx配置非常简单,执行以下命令即可:

/usr/local/webserver/nginx/sbin/nginx -s reload

六、编写每天定时切割Nginx日志的脚本

1、创建脚本/usr/local/webserver/nginx/sbin/cut_nginx_log.sh

vi /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

输入以下内容:

 

复制代码
#!/bin/bash
# This script run at 00:00
# The Nginx logs path
logs_path="/usr/local/webserver/nginx/logs/"
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`
复制代码

2、设置crontab,每天凌晨00:00切割nginx访问日志

crontab -e 

输入以下内容:

00 00 * * * /bin/bash  /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_901449.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5/CSS3进阶——宝贝之家网站首页

学习了一段时间的框架,最近在复习最早学的html5、css3,拿了一个小案例做了一下,整个过程还算顺利,附图: 其实页面整体结构还是很清晰的,这里我也是直接使用了多个div嵌套划分的常规手段,没有用…

谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)

在上篇文章里列举了(国内外用ASP.NET开发的大型网站有哪些),。最后提到了用.NET开发的大型网站和LAMP/JAVA平台的成本比较。其实在很多时候,收费的不一定就比免费的成本更高。因为开发一个网站要使用哪个平台的技术更合适,需要考虑很多种情况…

Git中文学习网站

Git中文学习网站:https://git-scm.com/book/zh/v2

移动开发者的自学宝典:十大在线编程学习网站

目前的教育领域,受移动互联网的冲击,MOOC的理念正在风行,但事实却稍显疲软,不尽如人意。相比美国式的全民热衷,国内的线上教育却还流于形式。其他教育尚且如此,移动开发教育更不用谈。在这种情况下&#xf…

4.4docker基础详细版--在容器中部署静态网站

利用docker技术在容器中使用nginx部署一个静态网站。 容器的端口映射 在使用run的时候指定-p或-P来进行端口映射: -P:将为容器暴露的所有端口进行映射eg:docker run -P -it centos /bin/bash-p:指定映射哪些容器的端口eg&#xf…

9.docker常用命令学习网站常用软件的安装

以下是此页面上的基本 Docker 命令列表,以及一些相关命令(如果您要在继续之前进行进一步探索)。 docker build -t friendlyname .# 使用此目录的 Dockerfile 创建镜像 docker run -p 4000:80 friendlyname # 运行端口 4000 到 90 的“友好名…

SSM众筹网站

注:本文为伪原创,代码主要参考尚硅谷教程。感谢巨人的肩膀,让我可以看得更远。 本文全部代码见https://github.com/BnKes/crowdfunding 详细目录见文章尾巴 1.系统架构 Atcrowdfunding-parent 父工程,聚合其他工程(pom)Atcrowdfunding-mai…

29个非常优秀的纹理背景网站设计

纹理设计一直是不少同学追求的,今天就推荐30个纹理设计出众的网站,希望对你的设计有所帮助。个人比较喜欢第14个,有家的轻松的感觉,更有三维效果,大爱啊! 1. Banger’s分享一个最好用的UI前端框架&#xff…

[转载]搭建个人网站 |博客

一个完全的新人如何搭建自己的个人网站 首先,申明下本文所指的新人是指会上网站看网页,会自己聊QQ,会在新浪、网易等平台上写博客的人。当然你要说这个只要会上网的人都会了,是的,我所指的新人就是会上网的人。所以本文…

推荐一个oracle管理和学习资料网站

http://ajava.org/book/oracle/index.html 很多的oracle管理和学习方面的电子书,值得一看

将网站打包成桌面程序并生成安装包(跨平台)

一、Nativefier将网站打包成桌面程序 介绍 Nativefier 是一个命令行工具,仅仅通过一行代码就可以轻松地为任何的网站创建桌面应用程序,应用程序通过 Electron打包成系统可执行文件(.app .exe等), 对应的可执行文件分别可在 Windows、macOS …

WSTMall网站系统最新官方版

WSTMall V1.0是在thinkphp 的经典版本3.2.2基础上进行优化开发的, TP 3.2.2不是thinkphp的一个最新的版本,却是thinkphp最金典的一个版本,正所谓站在巨人的肩膀上,WSTMall V1.0继承了thinkphp大道致简的理念,继承了thi…

天涯孤岸软件商城-.net电子商务网站系统案例

Asp.net 电子商务商城 开发技术项目案例 ASP.NET是作为.NET框架体系结构的一部分推出的。2000年ASP.NET 1.0正式发布,2003年ASP.NET升级为1.1版本。ASP.NET 1.1发布之后更加激发了Web应用程序开发人员对ASP.NET的兴趣。于是在2005年11月微软公司又发布了ASP.NET 2.…

使用Java开发高性能网站(二)

数据存取 数据库服务器的优化和数据的存取,什么类型的数据放在什么地方更好是值得去思考的问题,将来的存储很可能是混用的,Cache,NOSQL,DFS,DataBase在一个系统上都会有,生活的餐具和平日里穿的…

html/css 个人网站实例(一)

显示效果 HTML代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>alalasheep的个人网站</titl…

兼容性网站导航主菜单--Head

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml1-strict.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" xml:lang"en"> <head> <title>兼容性超强的…

18 个锻炼编程技能的网站

编程几乎已经成为了人类所知每个行业的必要组成部分&#xff0c;它帮助组织和维护大型系统的方式是无可比拟的&#xff0c;所以越来越多的人开始了他们的编程之旅。 要学习编程&#xff0c;你可以通过交互式平台或者书本&#xff0c;随便一种你觉得最适合和容易的学习方式。但是…

Chrome“无法添加来自此网站的应用”的解决办法

晚上在Win8系统下在给Chrome添加插件时突然提示“无法添加来自此网站的应用、扩展程序和应用脚本”&#xff0c;这果断让我很诧异~之前用的都是Win7系统的Chrome 24.0&#xff0c;添加插件的方法也很简单&#xff0c;就是直接将下载好的Chrome应用*.crx文件拖到扩展程序界面&am…

监控网站与接口宕机,并推送 App 消息提醒的程序

监控网站与接口宕机&#xff0c;并推送 App 消息提醒的程序 咕咕监控&#xff0c;专注于网站、数据接口与设备在线状态监控&#xff0c;统一管理您所有的网站、API 与设备&#xff0c;10ms 级别的监控频率&#xff0c;宕机时第一时间推送 App 消息、微信消息、短信、电话语音进…