前回の投稿内容で解決とまで
いかなかったため、
改めてお伺いいたしたく投稿いたしました。
原因に関しては、前回の投稿から
ApachではなくTomcatの方にあるのではと考えられます。
ローカル環境ではWebSocektは利用できるのですが、
サーバーに上げたら
WebSockeが機能しなくなってしまいました。
WebSockeとApacheの連携がうまくいっていないようです。
利用している環境は
Apache:2.4.6
Tomcat:7.0.42
CentOS:6.5
です。
http://qiita.com/sion_cojp/items/a79ae08853528761cc30
や
http://normalse.hatenablog.jp/entry/2015/03/13/200755
を参照して設定を行ったのですが、
うまくいきません。
Webアプリのトップページには
http://www.◯◯.jp/◯◯/
で表示できるとします。
/etc/httpd/conf/extra/httpd-proxy.confの設定は
ProxyPass /◯◯/ ws://www.◯◯.jp/◯◯/ ProxyPassReverse /◯◯/ ws://www.◯◯.jp/◯◯/ ProxyPass /◯◯/ ajp://www.◯◯.jp:8009/◯◯/
としています。
httpd.confにおける設定は以下の通りです。
ServerRoot "/usr" Include /etc/httpd/conf/extra/httpd-proxy.conf Listen 80 LoadModule authn_file_module /etc/httpd/modules/mod_authn_file.so LoadModule authn_core_module /etc/httpd/modules/mod_authn_core.so LoadModule authz_host_module /etc/httpd/modules/mod_authz_host.so LoadModule authz_groupfile_module /etc/httpd/modules/mod_authz_groupfile.so LoadModule authz_user_module /etc/httpd/modules/mod_authz_user.so LoadModule authz_core_module /etc/httpd/modules/mod_authz_core.so LoadModule access_compat_module /etc/httpd/modules/mod_access_compat.so LoadModule auth_basic_module /etc/httpd/modules/mod_auth_basic.so LoadModule reqtimeout_module /etc/httpd/modules/mod_reqtimeout.so LoadModule filter_module /etc/httpd/modules/mod_filter.so LoadModule mime_module /etc/httpd/modules/mod_mime.so LoadModule log_config_module /etc/httpd/modules/mod_log_config.so LoadModule env_module /etc/httpd/modules/mod_env.so LoadModule headers_module /etc/httpd/modules/mod_headers.so LoadModule setenvif_module /etc/httpd/modules/mod_setenvif.so LoadModule version_module /etc/httpd/modules/mod_version.so LoadModule proxy_module /etc/httpd/modules/mod_proxy.so LoadModule proxy_ftp_module /etc/httpd/modules/mod_proxy_ftp.so LoadModule proxy_http_module /etc/httpd/modules/mod_proxy_http.so LoadModule proxy_wstunnel_module /etc/httpd/modules/mod_proxy_wstunnel.so LoadModule proxy_ajp_module /etc/httpd/modules/mod_proxy_ajp.so LoadModule mpm_event_module /etc/httpd/modules/mod_mpm_event.so LoadModule unixd_module /etc/httpd/modules/mod_unixd.so LoadModule status_module /etc/httpd/modules/mod_status.so LoadModule autoindex_module /etc/httpd/modules/mod_autoindex.so LoadModule dir_module /etc/httpd/modules/mod_dir.so LoadModule alias_module /etc/httpd/modules/mod_alias.so <IfModule unixd_module> User apache Group apache </IfModule> ServerAdmin you@example.com <Directory /> AllowOverride none Require all denied </Directory> DocumentRoot "/var/www/html" <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.html </IfModule> <Files ".ht*"> Require all denied </Files> ErrorLog "/var/log/httpd/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 "/var/log/httpd/access_log" common </IfModule> <IfModule alias_module> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" </IfModule> <IfModule cgid_module> </IfModule> <Directory "/var/www/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <IfModule mime_module> TypesConfig /etc/httpd/conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz </IfModule> <IfModule proxy_html_module> Include /etc/httpd/conf/extra/proxy-html.conf </IfModule> <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule>
【追記】
今まで、mod_proxyを利用していたと思っていたのですが、
httpdのエラーログを見たところ、
Apache/2.4.6 (Unix) mod_jk/1.2.37 configured -- resuming normal operations
との記載があり、mod_jkを利用していたようです。
そこで、mod_proxyを利用できるように、変えようと思って、
とりあえず、mod_jk関連のものを削除してApache、Tomcatを起動しました。
すると、
Apache/2.4.6 (Unix) configured -- resuming normal operations
となってしまいました。
起動には成功しているようですが、
これはmod_proxyを利用できていないようです。
また、httpd_proxy.confでの設定を全くしていない時でも、
ポート番号8080を抜いた記載でも、接続がおこなえます。
つまり、他の設定ファイルというで、
ApacheとTomcatの連携を行っているのでしょうか?
httpd.confの設定の問題かと思うのですが、
どこがおかしいのかご教授いただけると幸いです。
【追記】
server.xmlの設定になります。
<?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <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" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> </Server>
回答2件
あなたの回答
tips
プレビュー