다른 게시물에 따르면 파일 권한이나 색인 지시문이 부족한 것이 원인입니다. 그러나 Flask 응용 프로그램에는 색인 파일이 전혀 없으며 대부분의 사이트가 매력처럼 작동합니다.
nginx.conf
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 5M;
root /srv/www/cc/app;
location / {
try_files $uri $uri/ @cc;
}
location /uploads/ {
# root /srv/www/cc/app;
expires max;
}
location /static/ {
# root /srv/www/cc/app;
expires max;
}
location @cc {
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
}
}
views.py의 스 니펫
@app.route('/', methods = ['GET'])
def client():
return render_template("/client/index.html")
#-----------------CLIENT ABOVE, ADMIN BELOW------------------#
@app.route('/admin/', methods = ['GET'])
@login_required
def admin():
submissions = Campaign.query.all()
return render_template("admin.html",
title = 'Admin',
submissions = submissions)
그래서 기본적으로 단일 경로가있는 단일 views.py가 있습니다. / admin / 인 모든 것은 매력처럼 작동하지만 단지 / 인 것은 그렇지 않습니다.
내가 말했듯이, 나는 색인이 없다. nginx.conf의 index 지시어를 "app"로 설정하려고했지만 마법이 발생하지만 주사위는 없습니다.
내 파일 구조는 다음과 같습니다.
/cc/
app/
__init__.py
views.py
etc
uploads/
static/
config.py
nginx 로그에서 :
"/ srv / www / cc / app /"의 디렉토리 인덱스는 금지되어 있습니다
나는 다른 사람들이 온라인에서 비슷한 문제를 발견했고 nginx가 사용자 www-data로 실행 되며이 사용이 디렉토리의 소유자임을 확인했습니다.
나는 그것이 nginx에게 정적 파일을 찾을 위치를 알려주기 위해 디렉토리를 변경해야한다고 생각했습니다. 웹 사이트에서 가져 왔습니다. nginx.org/ko/docs/beginners_guide.html#static
—
Chockomonkey
@MichaelHampton 나는 계속해서 당신의 제안을 시도했습니다. 서버 루트를 / srv / www / cc / app로 변경하고 다른 두 개를 제거했습니다. 작동하는 모든 것이 계속 작동하고 사이트의 루트 / 위치는 여전히 403을 반환합니다.
—
Chockomonkey
root
서로 다른 디렉토리를 가리키는 세 개의 다른 지시문이 있습니까? 먼저 수정하면 문제가 해결 될 것으로 예상됩니다.