質問編集履歴

9

微修正

2020/07/12 13:19

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -105,3 +105,5 @@
105
105
  - 自宅サーバーのselinuxを一時的にオフにしても変化なし
106
106
 
107
107
  - .htaccessのRewriteRuleのオプションを[L,P]から[L]または[L,R]にして普通にリダイレクトさせれば画像が見れる
108
+
109
+ - AWSにアクセスして404が返ってきたとき,自宅サーバーのApacheのログには何も記録されていない

8

微修正

2020/07/12 13:19

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- そこで,AWSのWEBサーバーの/archive/.htaccessに下記のように設定した.
5
+ そこで,AWSのWEBサーバーの[DocumentRoot]/archive/.htaccessに下記のように設定した.
6
6
 
7
7
  ```htaccess
8
8
 

7

微修正

2020/07/12 11:02

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```はブラウザから直接アクセスすれば画像を見ることができる.
27
+ Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```はブラウザから直接アクセスすれば画像を見ることができる上に,EC2上でwgetすると正常に取得できる
28
28
 
29
29
 
30
30
 

6

微修正

2020/07/11 16:21

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -31,12 +31,6 @@
31
31
  解決方法が分かる方はいらっしゃいますでしょうか.
32
32
 
33
33
  ```text
34
-
35
- [Sun Jul 12 00:05:16.006222 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] strip per-dir prefix: /home/ubuntu/public_html/archive/storage/aaa.jpg -> storage/aaa.jpg
36
-
37
- [Sun Jul 12 00:05:16.006230 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] applying pattern '.*(jpg|png|gif)$' to uri 'storage/aaa.jpg'
38
-
39
- [Sun Jul 12 00:05:16.006252 2020] [rewrite:trace4] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] RewriteCond: input='/archive/storage/aaa.jpg' pattern='^.*/storage/thumb/[^/]+\.(jpg|png|gif)$' => not-matched
40
34
 
41
35
  [Sun Jul 12 00:05:16.006257 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] strip per-dir prefix: /home/ubuntu/public_html/archive/storage/aaa.jpg -> storage/aaa.jpg
42
36
 

5

微修正

2020/07/11 16:01

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- そこで,AWSのWEBサーバーの.htaccessに下記のように設定した.
5
+ そこで,AWSのWEBサーバーの/archive/.htaccessに下記のように設定した.
6
6
 
7
7
  ```htaccess
8
8
 

4

タイトル改善

2020/07/11 15:55

投稿

abroad128
abroad128

スコア60

test CHANGED
@@ -1 +1 @@
1
- Apacheの.htaccessでRewriteRuleを使ってURLを書き換えると”File does not exist”になってしまう
1
+ .htaccessでRewriteRuleを使ってURLを書き換えると”File does not exist”になってしまう
test CHANGED
File without changes

3

タイトル改善

2020/07/11 15:53

投稿

abroad128
abroad128

スコア60

test CHANGED
@@ -1 +1 @@
1
- Apacheの.htaccessでRewriteRuleを使ってリダイレクトさせると”File does not exist”になってしまう
1
+ Apacheの.htaccessでRewriteRuleを使ってURLを書き換えると”File does not exist”になってしまう
test CHANGED
File without changes

2

微修正

2020/07/11 15:51

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```ブラウザから直接アクセスすれば画像を見ることができる.
27
+ Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```ブラウザから直接アクセスすれば画像を見ることができる.
28
28
 
29
29
 
30
30
 

1

最初の版で投稿ミスをした

2020/07/11 15:49

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,113 @@
1
- クライアントがAWS上のApacheのWEBサーバーから画像を取得しようとしたときに,サーバーにファイルが存在しない場合は自宅のWEBサーバーからファイルを取得してクライアントに返すようにしたいです
1
+ 当方で用意したAWSのEC2上のApacheのWEBサーバーからクライアントが画像を取得しようとしたときに,サーバーにファイルが存在しない場合は,EC2が自宅のWEBサーバーからファイルを取得して,それをクライアントに返すようにしたい.
2
2
 
3
3
 
4
4
 
5
- そこで,
5
+ そこで,AWSのWEBサーバーの.htaccessに下記のように設定した.
6
+
7
+ ```htaccess
8
+
9
+ RewriteEngine On
10
+
11
+ RewriteCond %{REQUEST_URI} ^.*/storage/[^/]+.(jpg|png|gif)$
12
+
13
+ RewriteCond %{REQUEST_FILENAME} !-f
14
+
15
+ RewriteRule ^storage/([^/]+.(?:jpg|png|gif))$ http://xxx.xxx.xxx.xxx:8080/storage/$1 [L,P]
16
+
17
+ ```
18
+
19
+ 例えば,```https://hoge.jp/archive/storage/aaa.jpg```にアクセスして,ファイルが存在しない場合はリバースプロキシで```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```からデータを取得してクライアントに返すようにしたい.
20
+
21
+
22
+
23
+ しかし,```https://exmaple.com/archive/storage/aaa.jpg```にアクセスすると404エラーとなってしまう.
24
+
25
+
26
+
27
+ Apacheのerrorログを見ると以下のようになっていて,最後の行の```http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg```にブラウザから直接アクセスすれば画像を見ることができる.
28
+
29
+
30
+
31
+ 解決方法が分かる方はいらっしゃいますでしょうか.
32
+
33
+ ```text
34
+
35
+ [Sun Jul 12 00:05:16.006222 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] strip per-dir prefix: /home/ubuntu/public_html/archive/storage/aaa.jpg -> storage/aaa.jpg
36
+
37
+ [Sun Jul 12 00:05:16.006230 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] applying pattern '.*(jpg|png|gif)$' to uri 'storage/aaa.jpg'
38
+
39
+ [Sun Jul 12 00:05:16.006252 2020] [rewrite:trace4] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] RewriteCond: input='/archive/storage/aaa.jpg' pattern='^.*/storage/thumb/[^/]+\.(jpg|png|gif)$' => not-matched
40
+
41
+ [Sun Jul 12 00:05:16.006257 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] strip per-dir prefix: /home/ubuntu/public_html/archive/storage/aaa.jpg -> storage/aaa.jpg
42
+
43
+ [Sun Jul 12 00:05:16.006267 2020] [rewrite:trace3] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] applying pattern '^storage/([^/]+\.(?:jpg|png|gif))$' to uri 'storage/aaa.jpg'
44
+
45
+ [Sun Jul 12 00:05:16.006278 2020] [rewrite:trace4] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] RewriteCond: input='/archive/storage/aaa.jpg' pattern='^.*/storage/[^/]+\.(jpg|png|gif)$' => matched
46
+
47
+ [Sun Jul 12 00:05:16.006286 2020] [rewrite:trace4] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] RewriteCond: input='/home/ubuntu/public_html/archive/storage/aaa.jpg' pattern='!-f' => matched
48
+
49
+ [Sun Jul 12 00:05:16.006291 2020] [rewrite:trace2] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] rewrite 'storage/aaa.jpg' -> 'http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg'
50
+
51
+ [Sun Jul 12 00:05:16.006297 2020] [rewrite:trace2] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] escaped URI in per-dir context for proxy, http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg -> http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg
52
+
53
+ [Sun Jul 12 00:05:16.006308 2020] [rewrite:trace2] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] forcing proxy-throughput with http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg
54
+
55
+ [Sun Jul 12 00:05:16.006314 2020] [rewrite:trace1] [pid 15694] mod_rewrite.c(482): [client xxx.xxx.xxx.xxx:61496] xxx.xxx.xxx.xxx - - [hoge.jp/sid#7f7a55236f10][rid#7f7a551bc0a0/initial] [perdir /home/ubuntu/public_html/archive/] go-ahead with proxy request proxy:http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg [OK]
56
+
57
+ [Sun Jul 12 00:05:16.006350 2020] [core:info] [pid 15694] [client xxx.xxx.xxx.xxx:61496] AH00128: File does not exist: proxy:http://xxx.xxx.xxx.xxx:8080/storage/aaa.jpg
58
+
59
+ ```
60
+
61
+ ---
62
+
63
+ EC2のApacheの手動設定内容(主要箇所抜粋・ファイル混在)
64
+
65
+ ```Apache
66
+
67
+ <VirtualHost *:80>
68
+
69
+ DocumentRoot /home/ubuntu/public_html
70
+
71
+ RewriteEngine On
72
+
73
+ RewriteCond %{HTTPS} off
74
+
75
+ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
76
+
77
+ </VirtualHost>
78
+
79
+
80
+
81
+ <IfModule mod_ssl.c>
82
+
83
+ <VirtualHost _default_:443>
84
+
85
+ DocumentRoot /home/ubuntu/public_html
86
+
87
+ </VirtualHost>
88
+
89
+ </IfModule>
90
+
91
+
92
+
93
+ <Directory "/home/ubuntu/public_html">
94
+
95
+ AllowOverride All
96
+
97
+ Options ExecCGI MultiViews SymLinksIfOwnerMatch IncludesNoExec
98
+
99
+ Require all granted
100
+
101
+ AddHandler cgi-script .cgi .pl
102
+
103
+ </Directory>
104
+
105
+ ```
106
+
107
+ - AWS・・・EC2,Ubuntu18.04(Debian10),Apache/2.4.29
108
+
109
+ - 自宅サーバー・・・Raspberry Pi3,OSMC(Debian9.12),Apache/2.4.25
110
+
111
+ - 自宅サーバーのselinuxを一時的にオフにしても変化なし
112
+
113
+ - .htaccessのRewriteRuleのオプションを[L,P]から[L]または[L,R]にして普通にリダイレクトさせれば画像が見れる