apache 整合tomcat 后,提示was not found on this server
本帖最后由 颠蚊 于 2014-06-23 21:16 编辑求解。。为何会路径错?
数据库的连接方面,自然是没问题的。但路径看起来也是没有问题的啊。。因为我用8080端口跳过apache,点击并没有问题。如下图
--------------------------------------下面是我的配置
------------------tomcat 配置
# sed '/<!--/,/-->$/d;/^$/d' /usr/local/tomcat/conf/server.xml
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost"appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/var/www/html" debug="0" reloadable="true" crossContext="true"/>
</Host>
</Engine>
</Service>
</Server>
-------------------apache 配置
# grep -Ev'^#|^$|^ +#' httpd.conf
ServerRoot "/usr/local/apache2"
Listen 80
LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User apache
Group apache
</IfModule>
</IfModule>
ServerAdmin you@example.com
DocumentRoot "/var/www/html"
<Directory />
AllowOverride None
Options FollowSymLinks
Order deny,allow
Deny from all
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.jsp
</IfModule>
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" common
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
DefaultType text/plain
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
------------------mod_jk.conf
# cat mod_jk.conf
JkWorkersFile /usr/local/apache2/conf/workers.properties
# Where to put jk logs
JkLogFile /usr/local/apache2/logs/mod_jk.log
# Set the jk log level
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# JkMount /servlet/* worker1
JkMount /*.jsp worker1
---------------workers.properties
# cat workers.properties
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
#Defining a worker named worker1 and of type ajp13
worker.list=worker1
# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300 url not found说明路径没对。一个简单的检查到网站目录看看是否有这个文件 回复 2# action08
你看我第三张图,用tomcat是正常的啊。。
而且,apache我是可以访问,然后点击自动跳转就变成有问题。证明是apache哪里有问题
配置方面,目录也都没错啊。 jk的配置不对.
因为那个url是没有扩展名的, 所以, jk 要配置全转发才行了. 我还真不知道jk能不能配置成这样. 回复 4# q1208c
我修改了配置。已经解决。
---------httpd.conf
LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkMountFile /usr/local/apache2/conf/uriworkermap.properties
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName dummy-host.example.com
ErrorLog logs/error_log
CustomLog logs/access_log common
JkMountFile /usr/local/apache2/conf/uriworkermap.properties #发现这一句居然决定转发的成败
</VirtualHost>
# cat mod_jk.conf
JkLogLevel info
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
# cat workers.properties |grep -v ^#
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=1
# cat uriworkermap.properties |grep -v ^$
/*=worker1
!/*.gif=worker1
!/*.jpg=worker1
!/*.png=worker1
!/*.ico=worker1
!/*.css=worker1
!/*.js=worker1
!/*.htm=worker1
!/*.html=worker1
!/*.asp=worker1
!/*.aspx=worker1
!/*.txt=worker1
!/*.swf=worker1
!/*.flv=worker1
!/*.php=worker1
==========================================================================
本帖最后由 颠蚊 于 2014-06-24 23:01 编辑
回复 4# q1208c
回复 2# action08
完全无法理解,为什么我访问的主页老是这个?但主页绝对不是这个啊。。
如图,我grep 不到访问主页上显示的信息。。。证明没有一个页面文件有显示出来的字眼。
把主页改个名,就访问不到了。。证明访问的主页也确实没访问错。。。
谷歌浏览器访问也同样结果。浏览器清缓存也一样。
访问改名后的index2.jsp,就正常了。
怎么破?怎么解?
若有兴趣围观这种奇芭问题的,可以加我Q 119529036
----------------
这只是第一个问题,第二个问题:
httpd.conf server.xml都是指向同一个目录/var/www/html
如果在下其下面建多一个目录,把WEb站点移进去,访问就异常。。。httpd的日志报404
好蛋疼,不明白哪里出问题,好不容易才整好动静分离。 回复 6# 颠蚊
关于主页的问题, 是需要配置的. apache会默认指向 index.htm index.html index.jsp
等等. 但这些也只是默认的配置. 你可以找一下这个配置, 修改成你想要的.
动态静态内容分离, 是大型网站一定要做的事.
访问异常的问题不会太难解决, 查看一下日志, 看看路径是不是跟你想的一样, 如果不一样,
修配相应的配置就可以了.
小白来问一下,
tomcat 服务是做什么的呀
页:
[1]