Cấu hình Nginx Headers (Access-Control-Allow-Origin)

0
454
(Last Updated On: Th12 25, 2018)

Mỗi khi cấu hình một trang chia sẻ Video, bạn cần cho phép một bên thứ 3 nào đó có thể chia sẻ đoạn video của mình. Và tất nhiên Browser muốn xem một nội dung gì đó cần phải có sự cho phép.

Giả sử có một cấu hình trên Apache2 như thế này (tập tin .htaccess):

Header set Access-Control-Allow-Origin: *

Bạn cứ hiểu như là dấu “*” tức là cho phép tất cả.

Như vậy tương tự đối với Nginx. Chúng ta cần cài đặt module http-headers-more-filter cho nginx. Và tất nhiên bạn không cần phải Build gì cho mất công mà chỉ cần cài đặt gói Nginx Extras:

apt-get install nginx-extras

Việc còn lại của bạn là thêm cấu hình sau vào tập tin Virtual host:

server {
    listen 80;
    server_name vngeek.com;
    root "/var/www/html";

    index index.html index.htm index.php;

    charset utf-8;

    more_set_headers 'Access-Control-Allow-Origin: $http_origin';
    more_set_headers 'Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE, HEAD';
    more_set_headers 'Access-Control-Allow-Credentials: true';
    more_set_headers 'Access-Control-Allow-Headers: Origin,Content-Type,Accept,Authorization';

    location / {
        if ($request_method = 'OPTIONS') {
            more_set_headers 'Access-Control-Allow-Origin: $http_origin';
            more_set_headers 'Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE, HEAD';
            more_set_headers 'Access-Control-Max-Age: 1728000';
            more_set_headers 'Access-Control-Allow-Credentials: true';
            more_set_headers 'Access-Control-Allow-Headers: Origin,Content-Type,Accept,Authorization';
            more_set_headers 'Content-Type: text/plain; charset=UTF-8';
            more_set_headers 'Content-Length: 0';
            return 204;
        }
        try_files $uri $uri/ /index.php?$query_string;
    }

Chúc các bạn thành công!

Bình luận