2017-04-06 1 views
1

443에서 수신 대기하고 uWSGI를 사용하는 내 django 앱 서버로 트래픽을 전달하는 내 사이트가 활성화 된 nginx 서버가 있습니다. 관리자 페이지로 이동하여 로그인 할 수 있지만 정적 파일은 제공되지 않습니다. 나는 python3 manage.py collectstatic을 만났습니다. letsencrypt으로 SSL을 추가하기 전에 모든 것이 작동했습니다. 의 nginx 액세스 로그에서이 방법 :ssl에서 정적 파일 404 오류를 찾을 수 없습니다. - Django + uWSGI + nginx

"GET /static/admin/css/base.css HTTP/1.0" 404 

여기 내 리버스 프록시의 nginx 사이트 설정입니다 :

upstream staging_app_server { 
    server 52.52.52.52; 
} 

server { 
    listen 80; 
    server_name staging.site.com; 
    rewrite ^/(.*) https://staging.site.com/$1 permanent; 
} 

server { 

    listen 443; 
    server_name staging.site.com; 

    include snippets/ssl-staging.site.com.conf; 
    include snippets/ssl-params.conf; 

    ssl on; 
    ssl_session_cache builtin:1000 shared:SSL:10m; 

    access_log   /var/log/nginx/staging.access.log; 

    location/{ 

     proxy_set_header  Host $host; 
     proxy_set_header  X-Real-IP $remote_addr; 
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header  X-Forwarded-Proto $scheme; 

     proxy_pass   http://staging_app_server; 
     proxy_redirect  http://staging_app_server https://staging_app_server; 
    } 

    location ~ /.well-known { 
       allow all; 
    } 

    } 

그리고 nginx를 설정 응용 프로그램 서버 :

server { 
    listen 80; 
    server_name staging.site.com; 

    location = /favicon.ico { access_log off; log_not_found off; } 

    location /static/ { 
     alias /home/ubuntu/api/staticfiles; 
    } 

    location /media/ { 
     alias /home/ubuntu/api/media; 
    } 

    location/{ 
     include   uwsgi_params; 
     uwsgi_pass  unix:/run/uwsgi/api.sock; 
     uwsgi_param  UWSGI_SCHEME $scheme; 
     uwsgi_param  Host $host; 
     uwsgi_param  X-Real-IP $remote_addr; 
     uwsgi_param  X-Forwarded-For $proxy_add_x_forwarded_for; 
     uwsgi_param  X-Forwarded-Host $server_name; 
     uwsgi_param  X-Forwarded-Proto $scheme; 
    } 
} 

나는 무엇을 놓치고?

+0

서버에서 collectstatic 명령을 실행하여 지정된 폴더에 정적 파일이 수집되기를 바랍니다. –

+0

'python3 manage.py collectstatic' 명령이 실행되었습니다. '/ home/ubuntu/api/staticfiles'에 파일이 있습니다. – pitchdiesel

답변

0

alias 문구가 잘못되었습니다. location의 값과 alias의 값은 모두 /으로 끝나야하며 어느 한쪽 끝이 /이 아니어야합니다.

또한 alias 값이 location 값으로 끝나는 root을 사용하십시오. 자세한 내용은 this document을 참조하십시오. 예를 들어

는 :

location /static/ { 
    alias /home/ubuntu/api/staticfiles/; 
} 
location /media/ { 
    root /home/ubuntu/api; 
} 
0

이것은 일 :

location /static { 
    autoindex on; 
    alias /home/ubuntu/api/staticfiles; 
} 

감사를 @로 리처드 스미스를 올바른 방향으로 날을 가리키는 위해!

관련 문제