
현재 mysite.com을 방문하면 기본 사이트에서 Djago 앱이 실행되고 있습니다. 그러나 mysite.com/flaskapp에서 별도의 Flask 애플리케이션을 실행하고 싶습니다. 두 개의 nginx 사이트 지원 구성 파일을 설정하고 각 앱을 다른 포트에서 실행할 수 있지만 여러 가지 이유로 가능한 경우 모두 동일한 포트에서 실행하고 싶습니다. 내 nginx 서버 파일에서 플라스크app/ 위치를 구성할 때 404 오류가 발생합니다.
내 감독자 구성 파일은 다음과 같습니다.
[program:MYSITE]
command=/var/www/html/MYSITE/prodenv/bin/gunicorn --workers 3 --bind unix:/var/www/html/MYSITE/public_html/MYSITE.sock MYSITE.wsgi
directory=/var/www/html/MYSITE/public_html
autostart=true
autorestart=true
stderr_logfile=/var/log/MYSITE.err.log
stdout_logfile=/var/log/MYSITE.out.log
[program:FLASKAPP]
directory=/var/www/html/MYSITE/public_html/FLASKAPP/api
command=/var/www/html/MYSITE/public_html/FLASKAPP/venv/bin/gunicorn --workers 3 --bind unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock FLASKAPP:app
autostart=true
autorestart=true
stderr_logfile=/var/log/FLASKAPP.err.log
stdout_logfile=/var/log/FLASKAPP.out.log
그리고 내 nginx 사이트 지원 파일은 다음과 같습니다.
server {
listen 80;
listen [::]:80;
server_name MYSITE;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /var/www/html/MYSITE/public_html;
expires 30d;
}
location / {
include proxy_params;
proxy_pass http://unix:/var/www/html/MYSITE/public_html/MYSITE.sock;
}
location /FLASKAPP/ {
include proxy_params;
proxy_pass http://unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;
}
}
어떤 아이디어가 있나요? 감사해요!
답변1
Proxy_path에 오타가 있습니다. 당신은 가지고 있지만 proxy_pass http://unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;
, 있어야 합니다 fastcgi_pass unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;
. 제거 http://
하고 변경 proxy_pass
하면 fastcgi_pass
모든 것이 작동합니다.
답변2
나는 그것을 알아. 하위 디렉토리를 제거하기 위해 URL을 다시 작성했는데 이제 모든 것이 작동합니다.
전에:
location /FLASKAPP/ {
include proxy_params;
proxy_pass http://unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;
}
후에:
location /FLASKAPP/ {
include proxy_params;
proxy_pass http://unix:/var/www/html/MYSITE/public_html/FLASKAPP/api/FLASKAPP.sock;
rewrite ^/FLASKAPP(.*)$ $1 break;
}