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

Posted

技术标签:

【中文标题】可以通过文件夹而不是端口访问多个基于 laravel 的站点吗?【英文标题】:Can multi laravel based sites be accessed by folder not by port? 【发布时间】:2014-03-27 00:38:38 【问题描述】:

现在,我有两个基于 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; 错误日志/var/log/nginx/project1_error.log; 地点 / 索引 index.php 索引.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; 错误日志/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;

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

当然 - 示例配置如下所示:

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;
    ....
  

【讨论】:

以上是关于可以通过文件夹而不是端口访问多个基于 laravel 的站点吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在端口而不是 htdocs 文件夹中运行 PHP 应用程序?

在虚拟机上的关于Apache(阿帕奇)基于端口访问网站

nginx 部署 多个vue项目 端口代理配置问题

Laraval环境搭建

如何在 Raspberry Pi Motion 中访问网络摄像头,而不是使用端口

如何使用端口 80 而不是 3000?