能否通过文件夹而不是通过端口访问基于多个laravel的站点?

问题描述 投票:2回答:2

现在,我有两个基于Laravel + PHP + MySQL + Nginx的项目(站点),访问者可以通过键入以下内容来访问它们:

  http://www.mysite.com:80
  http://www.mysite.com:8001

是否可以不通过端口将访问方法更改为虚拟文件夹?

  http://www.mysite.com/project1
  http://www.mysite.com/project2

nginx conf文件位于(/etc/nginx/conf.d /):

  • project1.conf

    服务器{听*:80;server_name mysite.com www.mysite.com;server_tokens关闭;根目录/ var / www / html / project1 / public;client_max_body_size 100m;access_log /var/log/nginx/project1_access.log;error_log /var/log/nginx/project1_error.log;位置 / {index index.php index.html;
            if (!-f $request_filename){
                    rewrite (.*) /index.php;
            }
    }
    
    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    
    }
  • project2.conf

    服务器{听*:80;server_name www.mysite.com;server_tokens关闭;根目录/ var / www / html / project2 / public;client_max_body_size 100m;access_log /var/log/nginx/project2_access.log;error_log /var/log/nginx/project2_error.log;
    location / {
        index  index.php index.html;
    
        if (!-f $request_filename){
            rewrite (.*) /index.php;
        }
    }
    
    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    
    }
nginx laravel directory virtual
2个回答
0
投票

唯一可行的方法是通过文件夹和虚拟主机,而不是端口。


0
投票

确定-示例配置将如下所示:

1定义您的应用服务器

server {
 listen 8080;
 root /var/www/html/project1/public;
  ......
}
server {
 listen 8081;
 root /var/www/html/project2/public;
  ......
}

2定义代理服务器

server {
 listen 80;
 server_name mysite.com www.mysite.com;
 .....
 location /project1 {
    proxy_pass http://localhost:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    .....
  }


  location /project2 {
    proxy_pass http://localhost:8081;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    ....
  }
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.