在CentOS上配置Nginx以支持跨域访问,通常需要修改Nginx的配置文件。以下是具体步骤:
打开Nginx配置文件:
通常,Nginx的主配置文件位于 /etc/nginx/nginx.conf,但更常见的是在 /etc/nginx/conf.d/ 或 /etc/nginx/sites-available/ 目录下的虚拟主机配置文件中。
sudo vi /etc/nginx/nginx.conf
或者
sudo vi /etc/nginx/conf.d/default.conf
添加跨域配置:
在 server 块或 location 块中添加以下配置:
server {
    listen 80;
    server_name example.com;  # 替换为你的域名或IP地址
    location / {
        add_header 'Access-Control-Allow-Origin' '*' always;
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
        add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Authorization' 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 'Content-Length' 0;
            add_header 'Content-Type' 'text/plain charset=UTF-8';
            return 204;
        }
        # 其他配置...
    }
}
解释:
add_header 'Access-Control-Allow-Origin' '*' always;:允许所有来源的请求。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;:允许的请求头。if ($request_method = 'OPTIONS'):处理预检请求(OPTIONS),返回204状态码。保存并退出编辑器:
按 Esc 键,然后输入 :wq 并按回车键保存并退出。
测试Nginx配置: 运行以下命令检查Nginx配置是否正确:
sudo nginx -t
重新加载Nginx: 如果配置文件没有问题,重新加载Nginx以应用更改:
sudo systemctl reload nginx
完成以上步骤后,Nginx应该已经配置好支持跨域访问了。你可以通过浏览器开发者工具或使用 curl 等工具进行测试,确保跨域请求能够正常工作。