Nginx+Tomcat+pcre 安装过程和出现的问题以及解决方案
2011-08-18 13:23
816 查看
一:前提准备条件
1、 apache-tomcat-6.0.292、 nginx-0.8.38
3、 pcre-8.02
4、 nginx-upstream-jvm-route-0.1
5、 jdk-6u6-linux-i586-rpm.bin
二:安装
JDK安装
命令:./ jdk-6u6-linux-i586-rpm.bin进行安装然后将下面的几句话放到/etc/profile文件的最下方即可
export JAVA_HOME=/usr/java/jdk1.6.0_11
export JAVA_BIN=/usr/java/jdk1.6.0_11/bin
export PATH=$PATH:$JAVA_HOME/bin
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
Tomat 安装
然后将 tomcat/conf/server.xml 中的内容替换成如下内容
<Server port="8005"shutdown="SHUTDOWN">
<ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on" />
<ListenerclassName="org.apache.catalina.core.JasperListener" />
<ListenerclassName="org.apache.catalina.mbeans.ServerLifecycleListener" />
<ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User databasethat can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"URIEncoding="UTF-8"/>
<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" maxThreads="5000"acceptCount="700" connectionTimeout="20000" />
<Engine name="Catalina" defaultHost="localhost"jvmRoute="tomcatweb1">
<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<ManagerclassName="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<ChannelclassName="org.apache.catalina.tribes.group.GroupChannel">
<MembershipclassName="org.apache.catalina.tribes.membership.McastService"
address="224.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<ReceiverclassName="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4001"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<ValveclassName="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<DeployerclassName="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListenerclassName="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Contextpath="" docBase="/usr/local/program/web/xhqm_web/" reloadable="false"/>
</Host>
</Engine>
</Service>
</Server>
里面需要改一些启动、访问以及停止的端口号 ,还需要改
jvmRoute 以及 engine 的prot 。然后编译web.xml,
在</web-app>之前加入<distributable/>,保存即可
这是为作负载均衡做准备的,每一个tomcat下的端口只不能重复
Pcre 安装
进入到 Pcre 目录下,执行# ./configure
# make
# make install
如果在执行编译的时候提示缺少gcc或 gcc-c++ 包的时候,需要重新进行编译gcc包,
命令 yum -y install gcc+ gcc-c++ 可进行gcc包的编译 或 yum -y update gcc 命令进行更新gcc包,如果在编译或更新的时候提示‘缺少包’ 或 ‘Thissystem is not registered with RHN’ 等原因的时候,说明 不能使用它自身的源进行编译或更新,那么就需要手动下载源来进行更新(下载地址:http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo),将用下载的文件替换掉/etc/yum.repos.d/目录下的文件(将之前的文件备份,被后续的服务器安全做准备),然后重新执行yum
-y install gcc+ gcc-c++即可
Nginx 安装
进入 nginx 目录下,执行如下命令./configure--with-pcre=/usr/include/pcre --with-http_stub_status_module--prefix=/usr/local/nginx
备注:--with-pcre 是 pcre 的源文件,非安装后的文件,prefix 是需要将 nginx 安装到的目录
然后执行 make
最后执行make install
配置
普通配置
一对一
将 nginx/conf 下的 nginx.conf 中的内容替换成如下内容即可#user nobody;
worker_processes 5;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
use epoll;
worker_connections 2048;
}
http {
# upstream backend { # 负载均衡的时候用到
# server localhost:8088 srun_id=tomcatweb1; #负载均衡的时候用到:访问的路径:端口 srun_id = tomcat已经配好的用于负载均衡的jvm
# server localhost:8087 srun_id=tomcatweb2; #负载均衡的时候用到:访问的路径:端口 srun_id =tomcat已经配好的用于负载均衡的jvm
# jvm_route $cookie_JSESSIONID|sessionid reverse; #用于session共享
# }
include mime.types;
default_type application/octet-stream;
charset UTF-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 20m;
limit_rate 1024k;
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/plainapplication/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
server {
listen 80;
server_name localhost;#需要访问的外网域名,如果直接写localhost可直接用ip访问
indexindex.jsp index.htm index.html;
root /usr/local/program/web/xhqm_web;#需要接管的web服务路径地址
#access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:8088;#本机访问地址,如果配置了负载均衡则直接将localhost:8088改为backend即可
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
location~ .*\.(htm|html|ico|gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location~ .*\.(js|css)?$
{
expires 1h;
}
location/Nginxstatus {
stub_status on;
access_log off;
}
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 off;
}
}
一对多
只需要将一对一关系的配置文件中增加一段与之前server并列关系的如下代码即可server {
listen 80;
server_name cms.xhqm.com; #需要访问的外网域名,如果直接写localhost可直接用ip访问
index index.jsp index.htm index.html;
root /usr/local/program/web/xhqm_admin; #需要接管的web服务路径地址
#access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:8099; #本机访问地址
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
}
负载均衡
配置负载均衡的时候需要添加一个nginx-upstream-jvm-route-0.1组件添加方法:
首先要进入nginx 源文件主目录下
首先执行:patch-p0 < /usr/local/ nginx-upstream-jvm-route-0.1/jvm_route.patch # jvm源文件存放目录 加上jvm_route.patch 文件
然后执行:./configure--add-module= /usr/local/nginx-upstream-jvm-route-0.1/ # jvm源文件存放目录
在然后执行 make à make install 即可
只需要将一对一关联中的 upstream {}的注释去掉,然后将红色字体部分根据备注将其修改即可是想负载均衡
注示: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
则表示配置正确
启动与停止方式
启动:/usr/local/nginx/sbin/nginx
停止:/usr/local/nginx/sbin/nginx–s stop
Nginx.conf
#user nobody;
worker_processes 5;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
use epoll;
worker_connections 2048;
}
http {
upstream backend {
serverlocalhost:8087 srun_id=tomcatweb2;
serverlocalhost:8088 srun_id=tomcatweb1;
jvm_route$cookie_JSESSIONID|sessionid reverse;
}
include mime.types;
default_type application/octet-stream;
charset UTF-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 20m;
limit_rate 1024k;
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/plainapplication/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
server {
listen 80;
server_name localhost;
indexindex.jsp index.htm index.html;
root /usr/local/program/web/xhqm_web;
#access_log logs/host.access.log main;
location / {
proxy_pass http://backend;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
location~ .*\.(htm|html|ico|gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location~ .*\.(js|css)?$
{
expires 1h;
}
location/Nginxstatus {
stub_status on;
access_log off;
}
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 off;
}
server {
listen 80;
server_name cms.xhqm.com;
index index.jsp index.htm index.html;
root /usr/local/program/web/xhqm_admin;
#access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:8199;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
}
server {
listen 80;
server_name xhqm.spider.com;
index index.jsp index.htm index.html;
root /usr/local/program/web/xhqm_spider;
#access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:8888;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
}
}
相关文章推荐
- Nginx+Tomcat+pcre 安装过程和出现的问题以及解决方案
- Linux下安装MyEclipse和Tomcat服务器详解,以及我安装过程中所出现的问题以及解决办法,并实现一个web小程序
- ubuntu安装 laravel 过程中出现: mcrypt php extension required 的问题 | 以及composer相关问题 | Nginx安装
- symfony window下的安装 安装时候出现的问题以及解决方案
- Ubuntu16.04 记录一次安装greenplum的过程,以及遇到的问题与部分解决方案
- Nginx在安装过程经常出现的问题
- rpm和yum的使用,程序包编译安装以及编译apache过程中出现的问题
- ArcSDE 安装过程出现问题以及解决方法(转载,收藏版)
- genymotion 安装过程和出现的问题解决方案汇总
- BugFree的安装与使用以及使用过程中可能出现的问题总结
- 从下载NodeJs开始到引入express模块最全的安装过程以及出现的所有问题
- 安装caffe过程中出现的问题及解决方案
- linux+nginx+mysql+php安装 以及常见问题得解决方案
- 整理ArcSDE 安装过程出现问题以及解决方法系列
- 整理ArcSDE 安装过程出现问题以及解决方法系列
- WordPress安装出现网页白屏问题以及解决方案
- Ubuntu下caffe安装过程中出现的问题与解决方案
- 关于Tomcat安装过程中出现的一些问题...
- vue安装环境过程出现的问题,以及解决方法。
- moodle平台安装过程中的问题以及解决方案