Điểm:0

Không thể cung cấp các tệp tĩnh bằng máy chủ Nginx (Lỗi Nginx 403 bị cấm)

lá cờ bs

Tôi đã cài đặt Nginx 1.18.0 trên Ubuntu 20.04. Tôi đang cố gắng cung cấp (nhiều) tệp HTML tùy chỉnh qua Nginx. Các tệp HTML chứa hoạt ảnh của hình ảnh trực tuyến và ánh xạ. Một số tệp HTML cũng có các tệp JS và CSS được liên kết.

Thay vì sử dụng mặc định, tôi đã tạo một khối máy chủ tên miền của tôi như thế này:

mkdir -p /var/www/my_domain/html
chown -R my_username /var/www/my_domain/html
chmod -R 755 /var/www/my_domain
ln -s /etc/nginx/sites-available/my_domain /etc/nginx/sites-enabled/

Sau đó, như một thử nghiệm, tôi đặt my_html1.html (ở đây, không có JS/CSS liên quan) bên trong /var/www/my_domain/html và đã thử truy cập qua trình duyệt Mozilla Firefox. tôi đang nhận được Lỗi 403 bị cấm.

Tôi đã tìm lỗi và thử các đề xuất được cung cấp đây, nhưng cho đến nay, không có thành công. Ví dụ: tôi đã thử chỉ định quyền sở hữu của tên miền của tôi thư mục cho người dùng dữ liệu www, nhưng không giúp được gì.

chown -R www-data:www-data /etc/nginx/sites-available/my_domain

Đây là cách của tôi nginx.conf trông giống như.

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 ;
}
http {
        gửi tệp trên;
        bật tcp_nopus;
        bật tcp_nodelay;
        keepalive_timeout 65;
        loại_hash_max_size 2048;
        server_names_hash_bucket_size 64;
        bao gồm /etc/nginx/conf.d/*.conf;
        bao gồm /etc/nginx/sites-enabled/*;
}

/etc/nginx/sites-available/my_domain

người phục vụ {
        nghe 80;

        gốc /var/www/my_domain/html;
        lập chỉ mục my_html1.html;

        server_name my_domain www.my_domain;

        địa điểm / {
                try_files $uri $uri/ =404;
                tự động lập chỉ mục;
                autoindex_exact_size tắt;
        }
}

Ai đó có thể giúp tôi khắc phục sự cố này không?

drookie avatar
lá cờ za
Câu trả lời luôn nằm trong `error.log`.
khajlk avatar
lá cờ bs
Nhật ký lỗi cho biết về quyền bị từ chối, cụ thể là `*16 open() "/var/www/my_domain/html/my_html_file.html" không thành công (13: Quyền bị từ chối), máy khách: 127.0.0.1, máy chủ: tên miền của tôi, yêu cầu: "GET /my_html_file.html HTTP/1.1",` nhưng, tôi đoán, điều này cũng rõ ràng từ lỗi 403 của trình duyệt.
drookie avatar
lá cờ za
Sau đó, nginx chỉ thiếu quyền *đọc/thực thi* trên các thư mục và *đọc* trên các tệp.
khajlk avatar
lá cờ bs
Ý bạn là người dùng `www-data` thiếu các quyền này? vậy, `chown 755 -R www-data path/to/directory` đây có phải là thứ tôi cần không?
khajlk avatar
lá cờ bs
Tôi đang cẩn thận trong việc cấp các quyền không cần thiết và muốn tránh chmod 777. Bạn có muốn đăng câu trả lời được đề xuất không?
drookie avatar
lá cờ za
Không. Đó là cách dưới mức cơ bản.
khajlk avatar
lá cờ bs
và cấp độ cơ bản cần thiết là gì?
drookie avatar
lá cờ za
Cuốn sách xuất hiện sau khi đọc một cuốn sách ngẫu nhiên về UNIX (có thể không đọc cho đến khi nó kết thúc) và tra cứu câu hỏi của bạn trên Google (có thể nhấn nút *Cảm thấy may mắn*).
djdomi avatar
lá cờ za
vui lòng chia sẻ đầu ra của `ls -Rl var/www/my_domain/html/`

Đă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.