Bir flask uygulaması için statik dosyaları sunmak için nginx (tabanca ile) kullanıyorum. Varsayılan statik klasördeVarsayılan statik konum için flask nginx ve statik dosyalar sorunu
Statik dosyalar iyi çalışıyor:
Ancak ben sadece Flask tarafından sunulan statik bir klasör kullanıyorum kullanıcılar giriş için erişimi kısıtlamak isteyen diğer statik dosyalar için<link rel="stylesheet" href="{{ url_for('static', filename='css/fa/font-awesome.min.css') }}" />
:
htmlapp.register_blueprint(application_view)
application_view = Blueprint('application_view', __name__, static_folder='application_static')
Ben böylece statik dosyayı çağırıyorum:
<link rel="stylesheet" href="{{ url_for('application_view.static', filename='css/main.css') }}" />
sonra uygulama/application_static kısıtlanmış statik dosyaları var. Bu, yerel bir Flask yüklemesinde gayet iyi çalışıyor, ancak Nginx hizmet dosyaları ile bir üretim makinesine/static klasörüne konuşlandırdığımda bir "NetworkError: 404 Bulunamadı - website.com/application_static/main.css" aldım.
Bu sorunu işlemek için Ngix'i yapılandırma hakkında herhangi bir fikir?
conf.d/mysitename.conf dosyası:
upstream app_server_wsgiapp {
server localhost:8000 fail_timeout=0;
}
server {
listen 80;
server_name www.mysitename.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
server_name www.mysitename.com;
listen 443 ssl;
#other ssl config here
access_log /var/log/nginx/www.mysitename.com.access.log;
error_log /var/log/nginx/www.mysitename.com.error.log info;
keepalive_timeout 5;
# nginx serve up static files and never send to the WSGI server
location /static {
autoindex on;
alias /pathtositeonserver/static;
}
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server_wsgiapp;
break;
}
}
# this section allows Nginx to reverse proxy for websockets
location /socket.io {
proxy_pass http://app_server_wsgiapp/socket.io;
proxy_redirect off;
proxy_buffering off;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
nginx.conf: yapılandırma dosyasını yeniden sürece
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Bazı nginx yapılandırmasını ve uygulamanızın daha ayrıntılı bilgilerini gösterme. – iurisilvio
Yerel makinenizde, flask wsgi sunucusunu veya tokmağını mı çalıştırıyorsunuz? Nginx conf dosyanızı da gönderebilir misiniz? – lesingerouge
@iurisilvio Özür dilerim Daha erken geri gelmedim, başka bir projede yasıyorum. Conf.d ve nginx conf dosyalarını ekledim. Yerel dev ortamımda flask paketlenmiş sunucuyu çalıştırıyorum. –