質問箱/3329

カテゴリ
サマリ#refの画像のProxy対応法?
バージョン1.4.6
投稿者je1sgh?
状態質問
投稿日2006-02-12 (日) 09:46:30

質問

Apache 2.0.55にProxy設定して,LAN内にあるPukiWikiをInternet側から見ようといろいろ試みました.httpd.confに

ProxyPass        /wiki/ http://192.168.1.3/
ProxyPassReverse /wiki/ http://192.168.1.3/

という具合です.ほとんどうまくいくのですが,#refなどで表示している画像が表示され ません(一番肝心^^; ).

インターネット越しに来るソースには,画像は,

<img src="http://192.168.1.3/pukiwiki.php?plugin=ref&amp;page=travel%2F2005_9V1&amp;src=P1000584.jpg" 
alt="P1000584.jpg" title="P1000584.jpg" width="320" height="240" />

という具合に参照されているのが問題かと思います.

たぶん,httpd.confの設定だけでは,対応できないと思いますが,ユーザーサイドで何か対処法はあるでしょうか.

回答

  • 「ユーザーサイド」のユーザが、httpd.confはおろかpukiwiki.ini.phpにすら手を出せないネットの向こうの不特定一般利用者を指すなら、まぁ対処法は無い*1んじゃないでしょうか。
    Proxy(仮にproxy.example.org)からのアクセスの場合には、
    $script='http://proxy.example.org/wiki/pukiwiki.php';
    になるようにすれば、取りあえずこの問題は解決するかな。 -- 2006-02-12 (日) 12:23:36
  • ありがとうございます.
    教えて頂いた方法で,Proxy越しは問題ありませんが,副作用としてLAN内からのアクセスもみな"Proxy経由"になりますね.複数のProxyからLAN内の同一サーバーをアクセスする場合も不具合になります(事情があって実例は示せませんが,実際そういうこともやってます^^; ).
    ZopeのVirtual Host Monsterのような機能があると一番ありがたいのですが.「自分で書け」というコメントはご容赦を^^;; -- 質問者? 2006-02-18 (土) 09:10:45
  • Proxy(仮にproxy.example.org)からのアクセスの場合には」の所はお読みいだだけなかったのでしょうか。REMOTE_ADRで判別するだけで、LAN内からのアクセスもみな"Proxy経由"は回避できる筈ですよ。サーバ設定に手を出せるなら、Apacheに複数のportをlistenさせて、ProxyPassをその一つに向け、SERVER_PORTで判別するという手も簡単に思いつくでしょう。 -- 2006-02-18 (土) 10:00:53
  • すみません,私,何か,貴方を怒られましたか.ご教示頂くのはありがたいですが,私のような半端にかじっているものには,もう少し具体的に書いて頂かないと解りません.それから,少なくともハンドルネームも書いて頂けるとありがたいです. -- 質問者? 2006-02-18 (土) 16:33:34
  • 怒られてはいません。「教えて頂いた方法で~副作用としてLAN内からのアクセスもみな"Proxy経由"になりますね」という表現に対し、控えめに不満を表明してみただけです。具体的にですか…例えば前者では、pukiwiki.ini.phpで
    if ($_SERVER['REMOTE_ADR'] == 'ProxyのIPアドレス') {
       $script='http://proxy.example.org/wiki/pukiwiki.php';
    }
    後者であれば、192.168.1.3のhttpd.confで
    Listen 127.0.0.1:80
    Listen 192.168.1.3:80
    Listen 192.168.1.3:8080
    <VirtualHost 192.168.1.3:8080>
    </VirtualHost>
    Proxyのhttpd.confで
    ProxyPass        /wiki/ http://192.168.1.3:8080/
    ProxyPassReverse /wiki/ http://192.168.1.3:8080/
    とした上、pukiwiki.ini.phpで
    if ($_SERVER['SERVER_PORT'] == 8080 ) {
       $script='http://proxy.example.org/wiki/pukiwiki.php';
    }
    とか。いづれにせよ、分かる人には不要で、分からない人には分からないという無意味なものだと思いますが…更に言うと、半端にかじっている程度なのに外部に公開されているサーバを弄っている人には有害かもしれません。表明の一環として、ハンドルを名乗ることは拒否します。:-P -- 2006-02-18 (土) 22:55:37


*1 ざっくり言って、"s/http:\/\/192\.168\.1\.3\//http:\/\/proxy\.example\.org\/wiki\//"するだけなので、ある程度の知識がある人には簡単なことですが、不特定一般対象では。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-08 (月) 12:18:25
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.554 sec.

OSDN