在Ubuntu上配置LNMP(Linux, Nginx, MySQL, PHP)以实现跨域访问,通常需要修改Nginx的配置文件。以下是具体步骤:
安装Nginx(如果尚未安装):
sudo apt update
sudo apt install nginx
编辑Nginx配置文件:
打开Nginx的默认配置文件或创建一个新的配置文件。通常配置文件位于 /etc/nginx/sites-available/
目录下。
sudo nano /etc/nginx/sites-available/default
添加跨域头信息:
在 server
块中添加以下配置,以允许跨域访问:
server {
listen 80;
server_name your_domain.com;
location / {
root /var/www/html;
index index.php index.html index.htm;
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 跨域配置
location /api/ {
if ($request_method = 'OPTIONS') {
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;
add_header 'Access-Control-Max-Age' 1728000 always;
add_header 'Content-Type' 'text/plain; charset=utf-8' always;
add_header 'Content-Length' 0 always;
return 204;
}
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;
}
}
在上面的配置中,/api/
是一个示例路径,你可以根据需要修改为实际的API路径。
启用配置:
如果你创建了一个新的配置文件,需要将其链接到 sites-enabled
目录:
sudo ln -s /etc/nginx/sites-available/your_config_file /etc/nginx/sites-enabled/
测试Nginx配置: 在重新加载Nginx之前,先测试配置文件是否有语法错误:
sudo nginx -t
重新加载Nginx: 如果配置文件没有问题,重新加载Nginx以应用更改:
sudo systemctl reload nginx
完成以上步骤后,你的Nginx服务器应该已经配置好了跨域访问。你可以使用浏览器的开发者工具检查响应头,确认 Access-Control-Allow-Origin
等跨域相关的头信息已经正确设置。