質問編集履歴

5

タイトル変更

2020/08/19 00:37

投稿

moshi
moshi

スコア90

test CHANGED
@@ -1 +1 @@
1
- リバースプロキシの設定でSpringbootのリソースが読み込めない
1
+ Springbootのリソースファイルが読み込めない
test CHANGED
File without changes

4

ブラウザバックしたものを投稿してしまったため内容を修正

2020/08/19 00:37

投稿

moshi
moshi

スコア90

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,16 @@
1
1
  ### 前提・実現したいこと
2
+
3
+ Springboot + ThymeleafでWebアプリケーションを実行したいがリソースの読み込みとサーブレットパスのマッピングがうまくできない
2
4
 
3
5
 
4
6
 
7
+
8
+
9
+ ### 発生している問題・エラーメッセージ
10
+
5
11
  Spring bootアプリケーションをサーバー上に公開したのですが
6
12
 
7
- サーバ側の設定(/etc/httpd/conf.d/testserver.conf)
13
+ 例えば現在のサーバ側の設定(/etc/httpd/conf.d/testserver.conf)
8
14
 
9
15
  ```
10
16
 
@@ -28,13 +34,25 @@
28
34
 
29
35
  ```
30
36
 
37
+
38
+
39
+ ・サーバー側の設定(リバースプロキシの設定)で/appでアプリケーションが動作する
40
+
31
- としてあり
41
+ いう状態だとます。
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+ ログイン画面を表示するアプリケーションは
32
50
 
33
51
  ```
34
52
 
35
- https://testserver.jp/app
53
+ https://testserver.jp/app/login
36
54
 
37
- ```でアプリケーションが動作するようになっています。
55
+ ```で動作するようになっています。
38
56
 
39
57
  そのためリソースファイルも
40
58
 
@@ -58,14 +76,86 @@
58
76
 
59
77
 
60
78
 
79
+ サーブレットパスについても同じで、ログインボタンを押した際の遷移先に
80
+
81
+ ```
82
+
61
- ### 試したこと
83
+ @{/auth}
84
+
85
+ ```
86
+
87
+ を設定しているのですが
88
+
89
+ ```
90
+
91
+ https://testserver.jp/auth
92
+
93
+ ```
94
+
95
+ となってしまいうまく遷移できません。
62
96
 
63
97
 
64
98
 
99
+ ### 試したこと
65
100
 
101
+ Springbootのapprication.propertiesにコンテキストパスの設定を行いました。
66
102
 
103
+ ```
104
+
67
- ### 補足情報(FW/ツールのバージョンなど)
105
+ server.servlet.context-path=/app
106
+
107
+ ```
68
108
 
69
109
 
70
110
 
111
+ すると、リソースファイルは
112
+
113
+ ```
114
+
115
+ https://testserver.jp/app/images/test.png
116
+
117
+ ```
118
+
119
+ に配置されるようにはなったのですが、今度はログイン画面を表示するパスが
120
+
121
+ ホスト(https://testserver.jp) + サーバー側の設定(/app) + コンテキストパスの設定(/app)で
122
+
123
+ ```
124
+
125
+ https://testserver.jp/app/app/login
126
+
127
+ ```
128
+
129
+ となってしまい、結局アプリケーションが動いているところと各リソースのある場所がマッチしていないという状態になっています。
130
+
71
- ここにより詳細な情報を記載してください。
131
+ サーブレットパスのマッピングも同様で
132
+
133
+ ```
134
+
135
+ @GetMapping("/login")
136
+
137
+ public String hello(Model model) {
138
+
139
+ return "login";
140
+
141
+ }
142
+
143
+ ```
144
+
145
+ としているため
146
+
147
+ ```
148
+
149
+ https://testserver.jp/app/login
150
+
151
+ ```
152
+
153
+ を見に行ってしまい、うまく動作しないという状態になっています。
154
+
155
+
156
+
157
+ どうすれば解決するでしょうか?
158
+
159
+ Springboot側をいじればいいのかサーバー側の設定を変えれば何とかなるのかなどもわからない状態です。
160
+
161
+ どなたか教えていただければと思います。よろしくお願いします。

3

ソース修正

2020/08/18 15:06

投稿

moshi
moshi

スコア90

test CHANGED
File without changes
test CHANGED
@@ -22,9 +22,9 @@
22
22
 
23
23
 
24
24
 
25
- ProxyPass /app http://localhost:8888/
25
+ ProxyPass /app http://localhost:8888/
26
26
 
27
- ProxyPassReverse /app http://localhost:8888/
27
+ ProxyPassReverse /app http://localhost:8888/
28
28
 
29
29
  ```
30
30
 

2

ソースの修正をしました。

2020/08/18 14:56

投稿

moshi
moshi

スコア90

test CHANGED
File without changes
test CHANGED
@@ -22,9 +22,9 @@
22
22
 
23
23
 
24
24
 
25
- ProxyPass /lcpapp http://localhost:8888/
25
+ ProxyPass /app http://localhost:8888/
26
26
 
27
- ProxyPassReverse /lcpapp http://localhost:8888/
27
+ ProxyPassReverse /app http://localhost:8888/
28
28
 
29
29
  ```
30
30
 

1

サーバーの設定を追記しました。

2020/08/18 14:55

投稿

moshi
moshi

スコア90

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,31 @@
4
4
 
5
5
  Spring bootアプリケーションをサーバー上に公開したのですが
6
6
 
7
+ サーバー側の設定(/etc/httpd/conf.d/testserver.conf)で
8
+
9
+ ```
10
+
11
+ <Location /app>
12
+
13
+
14
+
15
+ ProxyPass http://localhost:8888/
16
+
17
+ ProxyPassReverse http://localhost:8888/
18
+
19
+
20
+
21
+ </Location>
22
+
23
+
24
+
25
+ ProxyPass /lcpapp http://localhost:8888/
26
+
27
+ ProxyPassReverse /lcpapp http://localhost:8888/
28
+
29
+ ```
30
+
7
- サーバー側の設定で
31
+ としてあり
8
32
 
9
33
  ```
10
34