ubuntu

Ubuntu LNMP如何实现跨域访问

小樊
47
2025-09-22 22:53:01
栏目: 智能运维

在Ubuntu上配置LNMP(Linux, Nginx, MySQL, PHP)以实现跨域访问,通常需要修改Nginx的配置文件。以下是具体步骤:

  1. 安装Nginx(如果尚未安装):

    sudo apt update
    sudo apt install nginx
    
  2. 编辑Nginx配置文件: 打开Nginx的默认配置文件或创建一个新的配置文件。通常配置文件位于 /etc/nginx/sites-available/ 目录下。

    sudo nano /etc/nginx/sites-available/default
    
  3. 添加跨域头信息: 在 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路径。

  4. 启用配置: 如果你创建了一个新的配置文件,需要将其链接到 sites-enabled 目录:

    sudo ln -s /etc/nginx/sites-available/your_config_file /etc/nginx/sites-enabled/
    
  5. 测试Nginx配置: 在重新加载Nginx之前,先测试配置文件是否有语法错误:

    sudo nginx -t
    
  6. 重新加载Nginx: 如果配置文件没有问题,重新加载Nginx以应用更改:

    sudo systemctl reload nginx
    

完成以上步骤后,你的Nginx服务器应该已经配置好了跨域访问。你可以使用浏览器的开发者工具检查响应头,确认 Access-Control-Allow-Origin 等跨域相关的头信息已经正确设置。

0
看了该问题的人还看了