2016-03-28 31 views
1

apache 2.2.15サーバーのhttpd.confファイルでさまざまな設定を試してみましたが、私の問題を解決できませんでした。だから私はGuruから助けを得るためにここにそれを掲示しています。Apache 2.2.15のCentOS 6で仮想ホストにアクセスできない

この設定は、CentOS 6.7サーバーの/etc/httpd/conf/httpd.confにあります。

Listen 80 
Listen 8080 

<VirtualHost *:8080> 
     ServerName example.com  (Corrected after the comment) 
     DocumentRoot /var/www/dbgui  
     ErrorLog logs/dbgui-8080-error_log 
     <Directory /var/www/dbgui> 
       AllowOverride All 
     </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
     ServerName example.com 
     DocumentRoot /var/www/laravel/public 
     ErrorLog logs/example-80-error_log 
     <Directory /var/www/laravel> 
       AllowOverride All 
     </Directory> 
</VirtualHost> 

私はhttp://example.comを参照するとき、私はLaravelのページを取得する(予想通り)が、私はhttp://example.com:8080を参照するとき、私はを「接続がタイムアウトしている」を得ます。

私はすでに私は、ログには何も表示されていないIPテーブル

output of netstat -nltup 
tcp  0  0 :::8080 :::* LISTEN  13097/httpd 
tcp  0  0 :::80  :::* LISTEN  13097/httpd 

Output of iptables -L -nv 
0 0  ACCEPT tcp -- * * 0.0.0.0/0  0.0.0.0/0  tcp dpt:8080 
669 41648 ACCEPT tcp -- * * 0.0.0.0/0  0.0.0.0/0  tcp dpt:80 

に8080のポートを開いています。 Apacheがポート8080でリッスンしているように見えますが、何も通過せずポート8080でログに記録されません。

この問題を解決するための提案はありますか?

+0

iptablesを変更した後、ネットワークを再起動しましたか? – Zak

+0

ポート8080で「私は何も得られません」についてより具体的に記述できますか?あなたはどんな具体的なエラーですか? –

+0

はい、私はiptablesサービスを開始しました。 「接続にタイムアウトがあります」というメッセージが表示される – Tempo

答えて

0

ご協力いただきありがとうございます。多くの研究と異なることを試みた後、椅子を投げる直前に、私はついにそれを解決しました。ここにあります: iptablesがtcp/8080の正しいオープンポートとプロトコルを持っていることを確認した後 次に、VirtualHostの設定が正しいことを再度確認し、上記の設定が正しいことを確認します。 私がしたことは、selinuxがポート8080をすべて一緒に無効にするか、または許可モードに設定することによってブロックされていないことを確認しました。

#semanage port -l | grep http 
http_cache_port_t    tcp  3128, 8080, 8118, 8123, 10001-10010 
http_cache_port_t    udp  3130 
http_port_t     tcp  80, 81, 443, 488, 8008, 8009, 8443, 9000 
pegasus_http_port_t   tcp  5988 
pegasus_https_port_t   tcp  5989 

それが見られるように、ポート8080がhttp_cache_port_tに記載されていると、今SELinuxは

#setsebool -P httpd_can_network_memcache 1 

は、それが「オン」または「に設定し、確認するために、それをリストすることをブロックしていないことを確認しています私は/var/log/audit/audit.logとは/ var/log/httpdの/ access_logのと/var/log/httpd/error_log Iログを調査している間に1" 上記のコマンドの

# getsebool httpd_can_network_memcache 

どれも、問題は解決しませんでしたポート8080に関して何か間違ったものが見つかりませんでした。 結局のところ、すべてが正しく構成されていたから、意味が分からないと思ってしまいました。そこで、iptablesの出力をもう一度見てみました。

#iptables -L -nv 
0  0 ACCEPT tcp -- *  * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 
25 1316 ACCEPT tcp -- *  * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 
24 1240 ACCEPT tcp -- *  * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 

0パケットと0バイトがサーバーを経由しています。このサイトを見つけました

http://www.yougetsignal.com/tools/open-ports/ 

これは、ポート8080がブロックされていることを示しています。最後の手段として議長を抱えて:)私はISPに連絡して、サーバの前にファイアウォールがあり、ポート8080がブロックされていると言われました。彼らがそれを開いたときに、私は最終的にアクセスできたので。

0

ポートはServerNameディレクティブの一部ではありません。

このようなServerNameディレクティブからポートを削除してください:

<VirtualHost *:8080> 
ServerName example.com 
DocumentRoot /var/www/dbgui 
ErrorLog logs/dbgui-8080-error_log  
<Directory /var/www/dbgui> 
    AllowOverride All 
</Directory> 
</VirtualHost> 

apache.org for reference

+0

あなたのご意見ありがとうございます。私はそれを修正したが、うまくいかなかった。 – Tempo

0

上の例では、仮想ホストがあなたのipから推測することができることを確認するNameVirtualHostのparamをチェックする必要があります参照してください。 /ポートの組み合わせ

+0

ありがとうございます。私はNameVirtualHostも試みましたが、成功しませんでした。 – Tempo

関連する問題