Nginx可以通过配置文件来实现跨域资源共享(CORS)。以下是一个基本的配置示例,展示了如何在Nginx中设置CORS头信息:
打开你的Nginx配置文件。通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/your_domain.conf。
在 server 块中添加以下配置:
server { listen 80; server_name your_domain.com; location / { # 允许所有来源的请求 add_header 'Access-Control-Allow-Origin' '*' always; # 允许的HTTP方法 add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always; # 允许的HTTP头 add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Authorization' always; # 预检请求的有效期 add_header 'Access-Control-Max-Age' 1728000 always; # 其他配置... } # 处理预检请求 if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Authorization'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } } 解释配置项:
Access-Control-Allow-Origin: 设置允许访问的来源,* 表示允许所有来源。Access-Control-Allow-Methods: 设置允许的HTTP方法,例如 GET, POST, OPTIONS。Access-Control-Allow-Headers: 设置允许的HTTP头,例如 Origin, X-Requested-With, Content-Type, Accept, Authorization。Access-Control-Max-Age: 设置预检请求的有效期,单位为秒。OPTIONS 请求的处理:预检请求会发送一个 OPTIONS 请求来检查实际请求是否安全,Nginx 需要正确响应这些预检请求。保存配置文件并重新加载 Nginx:
sudo nginx -s reload 这样配置后,Nginx 将允许跨域请求,并根据配置的规则处理预检请求。请根据你的实际需求调整配置项。