nginx 不同的后缀加载不同的目录_请问,ngnix 如何配置,使用(同样的域名)+ (不同后缀)来访问不同的项目?…

  • Post author:
  • Post category:其他


需求:

使用相同的域名+路径,到达访问不同的laravel项目的目的。

例如:

laravel项目1,放在宿主机/var/www/html/children下;

laravel项目2,放在宿主机/var/www/html/duanwu下。

目标是希望通过:

www.local.com/children 进入laravel项目1;

www.local.com/duanwu 进入laravel项目2;

原来的做法,每个laravel都使用一个二级域名,例如:

laravel项目1,使用children.local.com这个域名访问;laravel项目2,使用duanwu.local.com这个域名访问。

其中的一个虚拟主机配置如下:

server {

listen 80;

server_name children.local.com;

location / {

root /usr/share/nginx/html/children/public;

index index.php index.html index.htm;

try_files $uri $uri/ /index.php?$query_string;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~ \.php$ {

root html;

fastcgi_pass php:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /var/www/html/children/public$fastcgi_script_name;

include fastcgi_params;

}

}

这样,访问children.lcoal.com能正常进入项目1,访问duanwu.local.com能正常进入项目2。

系统环境:

CENTOS7+DOCKER

laravel运行环境:

docker分别运行nginx容器,php容器,Mysql容器

目录挂载:

在nginx容器中

将宿主机的/var/www/html挂载到容器的/usr/share/nginx/html下

在php容器中

将宿主机的/var/www/html挂载到容器的/var/www/html下

在Mysql容器中

将宿主机的/var/lib/mysql挂载到容器的/var/lib/mysql下

nginx,php,Mysql的配置文件也放在宿主机上,挂载到各个容器的相关目录。

每个laravel项目都分别从git版本库中克隆不同的项目到/var/www/html下。

使用如下虚拟主机配置,访问www.local.com/children,出现403 Forbidden。

server {

listen 80;

server_name www.local.com;

location / {

root /usr/share/nginx/html/;

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ^~ /children/ {

alias /usr/share/nginx/html/children/public;

try_files $uri $uri/ @children;

location ~ \.php$ {

root html;

fastcgi_pass php:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /var/www/html/children/public$fastcgi_script_name;

include fastcgi_params;

}

}

location @children {

rewrite /children/(.*)$ /children/index.php?/$1 last;

}

}

请问,该如何配置nginx,来满足我们的需求?



版权声明:本文为weixin_39678531原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。