怎么在nginx中实现一个域名配置多个laravel项目

  介绍

这篇文章将为大家详细讲解有关怎么在nginx中实现一个域名配置多个laravel项目,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强>域名

假设域名为:http://www.dev.com

<强>实验环境

阿里云ECS + centos + nginx + php-fpm

<强>项目1

1。工程路径:/数据/wwwroot/project1/
2。访问路径:http://www.dev.com/project1/

<强>项目2

1。工程路径:/数据/wwwroot/project2/
2。访问路径:http://www.dev.com/project2/

<强>项目3

1。工程路径:/数据/wwwroot/project3/
2。访问路径:http://www.dev.com/project3/

<强>涉及的知识点

<李>

Nginx的位置指令,用法可以参考:https://www.jb51.net/article/154637.htm

<李>

Nginx的别名指令,用法可以参考:https://www.jb51.net/article/154640.htm

<>强实现步骤

为了实现以上的访问形式,我们需要用到Nginx里面指的位置令和别名指令,配置如下

位置^ ~,/${项目},{   ,alias  {$ PATH};   ,try_files  uri 美元;uri/美元,@ ${项目};      美元,位置~,\。php, {   fastcgi_pass 才能;unix:/dev/shm/php-cgi.sock;   fastcgi_index 才能,index . php;   fastcgi_param 才能;SCRIPT_FILENAME  request_filename美元;   include 才能;fastcgi_params;   ,}   }      项目位置@ $ {}{   项目,rewrite /${}/(. *),美元/${项目}/index . php ?/1美元,去年;   }

说明:上面的这个配置中的${项目}和{$ PATH}都是属于在实际过程中需要替换的部分,其中${项目}为url需要访问的路径部分,如project1, {$ PATH}则代表的是项目的真实访问路径,如/数据/wwwroot/project1,以http://www.dev.com/project1访问为例,那么对应的Nginx的配置是这样子的

位置^ ~,project1/, {   ,alias /数据/wwwroot/project1/公众;   ,try_files  uri 美元;uri/美元,@project1;      美元,位置~,\。php, {   fastcgi_pass 才能;unix:/dev/shm/php-cgi.sock;   fastcgi_index 才能,index . php;   fastcgi_param 才能;SCRIPT_FILENAME  request_filename美元;   include 才能;fastcgi_params;   ,}   }      位置@project1 {   ,rewrite /project1/(. *),美元/project1/index . php ?/1美元,去年;   }

对于project2和project3的配置只需要按照上面的配置模板依葫芦画瓢就可以了,最后完整nginx配置如下

server  {   ,listen  80;   ,server_name  http://www.dev.com;   ,access_log /数据/wwwlogs/nginx/access_log/www.dev.com_nginx.log 结合;   ,error_log /数据/wwwlogs/nginx/error_log/www.dev.com_errr_log;   ,index  index.html  index.htm  index . php;      ,# project1开始的配置   ,位置^ ~,project1/, {   ,alias /数据/wwwroot/project1/公众;   ,try_files  uri 美元;uri/美元,@project1;   美元,位置~,\。php, {   fastcgi_pass 才能;unix:/dev/shm/php-cgi.sock;   fastcgi_index 才能,index . php;   fastcgi_param 才能;SCRIPT_FILENAME  request_filename美元;   include 才能;fastcgi_params;   ,}   ,}   ,   ,位置@project1 {   ,rewrite /project1/(. *),美元/project1/index . php ?/1美元,去年;   ,}   ,   ,# project2开始的配置   ,位置^ ~,project2/, {   ,alias /数据/wwwroot/project2/公众;   ,try_files  uri 美元;uri/美元,@project2;   ,   美元,位置~,\。php, {   fastcgi_pass 才能;unix:/dev/shm/php-cgi.sock;   fastcgi_index 才能,index . php;   fastcgi_param 才能;SCRIPT_FILENAME  request_filename美元;   include 才能;fastcgi_params;   ,}   ,}   ,   ,位置@project2 {   ,rewrite /project2/(. *),美元/project2/index . php ?/1美元,去年;   ,}   ,   ,# project2开始的配置   ,位置^ ~,project3/, {   ,alias /数据/wwwroot/project3/公众;   ,try_files  uri 美元;uri/美元,@project3;   ,   美元,位置~,\。php, {   fastcgi_pass 才能;unix:/dev/shm/php-cgi.sock;   fastcgi_index 才能,index . php;   fastcgi_param 才能;SCRIPT_FILENAME  request_filename美元;   include 才能;fastcgi_params;   ,}   ,}   ,   ,位置@project3 {   ,rewrite /project3/(. *),美元/project3/index . php ?/1美元,去年;   ,}   ,   ,   ,#解析所有的。php   美元,位置~,\。php, {   ,fastcgi_pass  unix:/dev/shm/php-cgi.sock;   ,fastcgi_index  index . php;   ,fastcgi_param  SCRIPT_FILENAME  document_root fastcgi_script_name美元;   ,# fastcgi_param  SCRIPT_FILENAME  request_filename美元;   ,include  fastcgi_params;   ,}   ,   ,#图片,视频的的链接,此处是做缓存,,缓存30天,不写入访问日志   ,位置~,. * \。(gif | jpg | jpeg | png | bmp | swf | flv | mp4 | ico)美元,{   ,expires  30 d;   ,access_log ;   ,}   ,   ,# js  css文件的配置,此处是做缓存,,缓存7天,不写入访问日志   ,位置~,. * \。(js | css) ? $, {   ,expires  7 d;   ,access_log ;   ,}      ,位置~,/\ .ht  {   ,deny ;   ,}   null

怎么在nginx中实现一个域名配置多个laravel项目