**[[質問箱3/329]] [#d7a49f0d]
#author("2018-03-11T16:19:43+09:00;2010-03-08T12:18:25+09:00","","")
**[[質問箱/3329]] [#d7a49f0d]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|#refの画像のProxy対応法?|
|~バージョン|1.4.6|
|~投稿者|[[je1sgh]]|
|~状態|質問|
|~投稿日|&new{2006-02-12 (日) 09:46:30};|
***質問 [#q1c8f765]
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の設定だけでは,対応できないと思いますが,ユーザーサイドで何か対処法はあるでしょうか.

***回答 [#e5e8003f]
- 「ユーザーサイド」のユーザが、httpd.confはおろかpukiwiki.ini.phpにすら手を出せないネットの向こうの不特定一般利用者を指すなら、まぁ対処法は無い((ざっくり言って、"s/http:\/\/192\.168\.1\.3\//http:\/\/proxy\.example\.org\/wiki\//"するだけなので、ある程度の知識がある人には簡単なことですが、不特定一般対象では。))んじゃないでしょうか。~
Proxy(仮にproxy.example.org)からのアクセスの場合には、
 $script='http://proxy.example.org/wiki/pukiwiki.php';
になるようにすれば、取りあえずこの問題は解決するかな。 --  &new{2006-02-12 (日) 12:23:36};
- ありがとうございます.~
教えて頂いた方法で,Proxy越しは問題ありませんが,副作用としてLAN内からのアクセスもみな"Proxy経由"になりますね.複数のProxyからLAN内の同一サーバーをアクセスする場合も不具合になります(事情があって実例は示せませんが,実際そういうこともやってます^^; ).~
ZopeのVirtual Host Monsterのような機能があると一番ありがたいのですが.「自分で書け」というコメントはご容赦を^^;; -- [[質問者]] &new{2006-02-18 (土) 09:10:45};
- 「''Proxy(仮にproxy.example.org)からのアクセスの場合には''」の所はお読みいだだけなかったのでしょうか。REMOTE_ADRで判別するだけで、''LAN内からのアクセスもみな"Proxy経由"''は回避できる筈ですよ。サーバ設定に手を出せるなら、Apacheに複数のportをlistenさせて、&#x50;roxyPassをその一つに向け、SERVER_PORTで判別するという手も簡単に思いつくでしょう。 --  &new{2006-02-18 (土) 10:00:53};
- すみません,私,何か,貴方を怒られましたか.ご教示頂くのはありがたいですが,私のような半端にかじっているものには,もう少し具体的に書いて頂かないと解りません.それから,少なくともハンドルネームも書いて頂けるとありがたいです. -- [[質問者]] &new{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 --  &new{2006-02-18 (土) 22:55:37};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.038 sec.

OSDN