質問編集履歴

2

動作結果についてを記載

2023/08/17 00:41

投稿

moti7
moti7

スコア15

test CHANGED
File without changes
test CHANGED
@@ -8,19 +8,15 @@
8
8
  APサーバー:uWSGI
9
9
  フレームワーク:Flask
10
10
 
11
- ### 前提
11
+ ### 動作結果について
12
12
  dockerでコンテナを起動して
13
13
  「http://127.0.0.1:8080/」にアクセスして表示すると、
14
- 以下メッセージが表示され、正常に表示されない。
14
+ 以下メッセージが表示され(「default.conf」でNginxのエラー画面表示を設定しているためこのメッセージ。設定していない場合は502でエラー表示)、正常に表示されない。
15
15
  正常な「Hello World! debug!!!」が表示されるようにしたい。
16
16
 
17
- ```表示メッセージ
17
+
18
- An error occurred.
19
- Sorry, the page you are looking for is currently unavailable.
20
- Please try again later.
21
- If you are the system administrator of this resource then you should check the error log for details.
18
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-08-17/89af99e0-2c4e-472d-bcde-d1c8603ffc3d.png)
22
- Faithfully yours, nginx.
19
+
23
- ```
24
20
 
25
21
  ### 発生している問題・エラーメッセージ
26
22
  「Docker logs -f web-server」コマンドでログを確認すると以下、ログが出力されています。

1

エラーメッセージについて補足を追加。コンテナの状態を追加。

2023/08/17 00:32

投稿

moti7
moti7

スコア15

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
  以下メッセージが表示され、正常に表示されない。
15
15
  正常な「Hello World! debug!!!」が表示されるようにしたい。
16
16
 
17
- ```
17
+ ```表示メッセージ
18
18
  An error occurred.
19
19
  Sorry, the page you are looking for is currently unavailable.
20
20
  Please try again later.
@@ -24,8 +24,12 @@
24
24
 
25
25
  ### 発生している問題・エラーメッセージ
26
26
  「Docker logs -f web-server」コマンドでログを確認すると以下、ログが出力されています。
27
-
27
+ ログの内容から、upstreamによる接続が失敗と読み取れるので、
28
+ 以下を確認しました。
29
+ ・コンテナが正常に起動していることの確認OK。
30
+ ・upstream関連Nginxの設定の見直しをして、問題点がわからない(あっていると思っている)。
31
+
28
- ```
32
+ ```エラーログ
29
33
  [error] 27#27: *13 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: localhost, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3031/", host: "127.0.0.1:8080"
30
34
  ```
31
35
 
@@ -46,102 +50,6 @@
46
50
  ```
47
51
 
48
52
  ### 該当のソースコード
49
-
50
- ```app.py
51
- from flask import Flask
52
-
53
- app = Flask(__name__)
54
-
55
- @app.route('/')
56
- def hello():
57
- return "Hello World! debug!!!"
58
-
59
- if __name__ == "__main__":
60
- app.run(debug=True)
61
- ```
62
-
63
- ```requirements.txt
64
- Flask
65
- uwsgi
66
- ```
67
- ```auwsgi.ini
68
- [uwsgi]
69
- module = app
70
- callable = app
71
- master = true
72
- processes = 1
73
- socket = 0.0.0.0:3031
74
- chmod-socket = 666
75
- vacuum = true
76
- die-on-term = true
77
- wsgi-file = /app.py
78
- ```
79
- ```env
80
- HOME_PATH = './'
81
- ROOT_PATH = '/var/www/html/'
82
- ```
83
-
84
- ```default.conf
85
- upstream backend1 {
86
- # server ap-server:8080;# container_nameで指定
87
- server 127.0.0.1:3031;
88
- }
89
-
90
- server {
91
- listen 80;
92
- server_name localhost;
93
-
94
- location / {
95
- proxy_pass http://backend1;
96
- proxy_set_header Host $host;
97
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
98
- proxy_set_header X-Forwarded-Host $host;
99
- proxy_set_header X-Forwarded-Server $hostname;
100
- proxy_set_header X-Real-IP $remote_addr;
101
- proxy_set_header X-Forwarded-Proto $scheme;
102
- }
103
-
104
- error_page 500 502 503 504 /50x.html;
105
- location = /50x.html {
106
- root /usr/share/nginx/html;
107
- }
108
- }
109
- ```
110
-
111
- ```nginx.conf
112
- user nginx;
113
- worker_processes auto;
114
-
115
- error_log /var/log/nginx/error.log notice;
116
- pid /var/run/nginx.pid;
117
-
118
-
119
- events {
120
- worker_connections 1024;
121
- }
122
-
123
-
124
- http {
125
- include /etc/nginx/mime.types;
126
- default_type application/octet-stream;
127
-
128
- log_format main '$remote_addr - $remote_user [$time_local] "$request" '
129
- '$status $body_bytes_sent "$http_referer" '
130
- '"$http_user_agent" "$http_x_forwarded_for"';
131
-
132
- access_log /var/log/nginx/access.log main;
133
-
134
- sendfile on;
135
- #tcp_nopush on;
136
-
137
- keepalive_timeout 65;
138
-
139
- #gzip on;
140
-
141
- include /etc/nginx/conf.d/*.conf;
142
- }
143
- ```
144
-
145
53
  ### docker-compose.yml
146
54
  ```
147
55
  version: '3'
@@ -178,11 +86,125 @@
178
86
  TZ: "Asia/Tokyo"
179
87
  restart: always
180
88
  ```
89
+ ```Dockerfile
90
+ FROM python:3.11
91
+
92
+ RUN mkdir -p /var/www/html/
93
+
94
+ WORKDIR /var/www/html/
95
+ COPY src .
96
+
97
+ RUN pip install --upgrade pip
98
+ RUN pip install --upgrade setuptools
99
+ RUN pip install -r requirements.txt
100
+ ```
101
+ ```app.py
102
+ from flask import Flask
103
+
104
+ app = Flask(__name__)
105
+
106
+ @app.route('/')
107
+ def hello():
108
+ return "Hello World! debug!!!"
109
+
110
+ if __name__ == "__main__":
111
+ app.run(debug=True)
112
+ ```
113
+
114
+ ```requirements.txt
115
+ Flask
116
+ uwsgi
117
+ ```
118
+ ```auwsgi.ini
119
+ [uwsgi]
120
+ module = app
121
+ callable = app
122
+ master = true
123
+ processes = 1
124
+ socket = 0.0.0.0:3031
125
+ chmod-socket = 666
126
+ vacuum = true
127
+ die-on-term = true
128
+ wsgi-file = /app.py
129
+ ```
130
+ ```env
131
+ HOME_PATH = './'
132
+ ROOT_PATH = '/var/www/html/'
133
+ ```
134
+
135
+ ```default.conf
136
+ upstream backend1 {
137
+ # server ap-server:8080;# container_nameで指定
138
+ server 127.0.0.1:3031;
139
+ }
140
+
141
+ server {
142
+ listen 80;
143
+ server_name localhost;
144
+
145
+ location / {
146
+ proxy_pass http://backend1;
147
+ proxy_set_header Host $host;
148
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
149
+ proxy_set_header X-Forwarded-Host $host;
150
+ proxy_set_header X-Forwarded-Server $hostname;
151
+ proxy_set_header X-Real-IP $remote_addr;
152
+ proxy_set_header X-Forwarded-Proto $scheme;
153
+ }
154
+
155
+ error_page 500 502 503 504 /50x.html;
156
+ location = /50x.html {
157
+ root /usr/share/nginx/html;
158
+ }
159
+ }
160
+ ```
161
+
162
+ ```nginx.conf
163
+ user nginx;
164
+ worker_processes auto;
165
+
166
+ error_log /var/log/nginx/error.log notice;
167
+ pid /var/run/nginx.pid;
168
+
169
+
170
+ events {
171
+ worker_connections 1024;
172
+ }
173
+
174
+
175
+ http {
176
+ include /etc/nginx/mime.types;
177
+ default_type application/octet-stream;
178
+
179
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
180
+ '$status $body_bytes_sent "$http_referer" '
181
+ '"$http_user_agent" "$http_x_forwarded_for"';
182
+
183
+ access_log /var/log/nginx/access.log main;
184
+
185
+ sendfile on;
186
+ #tcp_nopush on;
187
+
188
+ keepalive_timeout 65;
189
+
190
+ #gzip on;
191
+
192
+ include /etc/nginx/conf.d/*.conf;
193
+ }
194
+ ```
195
+
196
+ ### コンテナの状態
197
+ ```
198
+ % docker ps
199
+ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
200
+ 83a7717bbaf8 nginx:latest "/docker-entrypoint.…" 2 seconds ago Up 2 seconds 0.0.0.0:8080->80/tcp web-server
201
+ 90cdb316e875 python:3.11 "uwsgi --ini /var/ww…" 2 seconds ago Up 2 seconds 0.0.0.0:3031->3031/tcp ap-server
202
+ ```
181
203
 
182
204
  ### 試したこと
183
205
 
184
206
  ・設定ファイルの見直し
185
- ・Googleで検索して調査
207
+ ・Googleで検索して調査(同類のブログ記事で試すが成功せず)
186
208
  ・Windows環境下、Mac環境下で試す
187
209
 
188
210
  ### 補足情報(FW/ツールのバージョンなど)