Điểm:1

NGINX không cung cấp tệp hình ảnh đúng cách

lá cờ es

Tôi đã thiết lập một trang web django sẽ được phục vụ bởi Nginx, mọi thứ vẫn hoạt động hoàn hảo cho đến khi hình ảnh ngừng hiển thị gần đây.

Tôi đã thử kiểm tra nguyên nhân có thể của sự phát triển kỳ lạ này bằng cách sử dụng Xoăn và sau đó nhận ra rằng Loại nội dung không được công nhận là Loại nội dung: hình ảnh/jpeg trả về một Loại nội dung: văn bản/html; bộ ký tự = utf-8

Hành vi này có vẻ lạ như tôi đã bao gồm mime.types trong tôi nginx.conf tập tin. Dưới đây là một ví dụ phản hồi từ Xoăn chỉ huy

user@server:~$ curl -I https://domain.name/media/upload/image.jpg
HTTP/1.1 200 OK
Máy chủ: nginx/1.18.0 (Ubuntu)
Ngày: CN, 29 tháng 5 năm 2022 00:45:53 GMT
Loại nội dung: văn bản/html; bộ ký tự = utf-8
Độ dài nội dung: 11392
Kết nối: giữ nguyên
Tùy chọn khung X: TỪ CHỐI
Thay đổi: Cookie
X-Content-Type-Options: nosniff
Chính sách giới thiệu: cùng nguồn gốc
Cross-Origin-Opener-Policy: cùng nguồn gốc
Đặt cookie: csrftoken=T9Z3jrp4dzOAINxo6JzOUyjIGwGYHoc37TZaYsIOmHHyrQUw30vI6ETIAcy66Wnr; hết hạn=CN, ngày 28 tháng 5 năm 2023 00:45:53 GMT; Tuổi tối đa=31449600; Đường dẫn=/; SameSite=Lax

Đây là đầy đủ của tôi nginx.conf tập tin

dữ liệu www của người dùng;
worker_processes tự động;
pid /run/nginx.pid;
bao gồm /etc/nginx/modules-enabled/*.conf;

sự kiện {
    công_nhân kết_nối 768 ;
    # đa_chấp vào ;
}

http {

    ##
    # Cài đặt cơ bản
    ##

    gửi tệp trên;
    bật tcp_nopus;
    loại_hash_max_size 2048;
    # server_token tắt;

    # server_name_hash_bucket_size 64;
    # máy chủ_tên_trong_chuyển hướng tắt;

    bao gồm /etc/nginx/mime.types;
    ứng dụng default_type/octet-stream;

    ##
    # Cài đặt SSL
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Bỏ SSLv3, tham khảo: POODLE
    bật ssl_prefer_server_ciphers;

    ##
    # Cài đặt ghi nhật ký
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Cài đặt Gzip
    ##

    bật gzip;

    # gzip_vary bật;
    # gzip_proxied bất kỳ;
    # gzip_comp_cấp 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # văn bản gzip_types/văn bản thuần túy/ứng dụng css/ứng dụng json/văn bản javascript/ứng dụng xml/ứng dụng xml/xml+văn bản rss/javascript;

    ##
    # Cấu hình máy chủ ảo
    ##

    bao gồm /etc/nginx/conf.d/*.conf;
    bao gồm /etc/nginx/sites-enabled/*;
}


#email {
# # Xem tập lệnh xác thực mẫu tại:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "NGƯỜI DÙNG";
# # khả năng của imap "IMAP4rev1" "UIDPLUS";
#
#   người phục vụ {
# nghe máy chủ cục bộ: 110;
# giao thức pop3;
# bật proxy;
# }
#
#   người phục vụ {
# nghe localhost:143;
# hình ảnh giao thức;
# bật proxy;
# }
#}

nội dung của /etc/nginx/sites-enabled/app

# /etc/nginx/sites-enabled

người phục vụ {
    server_name my_server_IP my_server_NAME;

    vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
    vị trí /tĩnh/ {
        gốc/nhà/người dùng/ứng dụng;
    }

    địa điểm / {
        bao gồm proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }

    nghe 443 ssl; 
    ssl_certificate /path/to/certfullchain.pem; 
    ssl_certificate_key /path/to/certprivkey.pem; 
    bao gồm /etc/cert-provider/options-ssl-nginx.conf; 
    ssl_dhparam /etc/cerrt-provider/ssl-dhparams.pem; 






}

người phục vụ {
    nếu ($host = www.domain.name {
        trả lại 301 https://$host$request_uri;
    } 


    nếu ($ máy chủ = tên miền) {
        trả lại 301 https://$host$request_uri;
    } 


    nghe 80;
    server_name my_server_IP my_server_NAME;
    trả lại 404; 




}

Ghi chú: Tôi đang phục vụ trang web này với gunicorn

Điểm:1
lá cờ es

Tôi đã có thể khắc phục sự cố này bằng cách thêm chỉ thị vị trí mới phù hợp với các tệp phương tiện của mình. Trong trường hợp này, các tệp của tôi được tải lên phương tiện truyền thông

Tôi đã sửa lỗi này bằng cách thêm phần sau vào khối máy chủ của mình

  địa điểm /phương tiện/ {
        gốc/nhà/người dùng/ứng dụng;
    }

Bây giờ mới của tôi /etc/nginx/sites-enabled/app trông như thế này.

# /etc/nginx/sites-enabled

người phục vụ {
    server_name my_server_IP my_server_NAME;

    vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
    vị trí /tĩnh/ {
        gốc/nhà/người dùng/ứng dụng;
    }
    địa điểm /phương tiện/ {
        gốc/nhà/người dùng/ứng dụng;
    }

    địa điểm / {
        bao gồm proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }

    nghe 443 ssl; 
    ssl_certificate /path/to/certfullchain.pem; 
    ssl_certificate_key /path/to/certprivkey.pem; 
    bao gồm /etc/cert-provider/options-ssl-nginx.conf; 
    ssl_dhparam /etc/cerrt-provider/ssl-dhparams.pem; 






}

người phục vụ {
    nếu ($host = www.domain.name {
        trả lại 301 https://$host$request_uri;
    } 


    nếu ($ máy chủ = tên miền) {
        trả lại 301 https://$host$request_uri;
    } 


    nghe 80;
    server_name my_server_IP my_server_NAME;
    trả lại 404; 




}

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.