這篇文章將為大家詳細(xì)講解有關(guān)怎么在nginx中實(shí)現(xiàn)一個(gè)域名配置多個(gè)laravel項(xiàng)目,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)定西免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。域名
假設(shè)域名為:http://www.dev.com
實(shí)驗(yàn)環(huán)境
阿里云ECS + centos + Nginx + php-fpm
項(xiàng)目1
1.工程路徑: /data/wwwroot/project1/
2.訪問路徑:http://www.dev.com/project1/
項(xiàng)目2
1.工程路徑: /data/wwwroot/project2/
2.訪問路徑:http://www.dev.com/project2/
項(xiàng)目3
1.工程路徑: /data/wwwroot/project3/
2.訪問路徑:http://www.dev.com/project3/
涉及的知識(shí)點(diǎn)
Nginx的location指令,用法可以參考:https://www.jb51.net/article/154637.htm
Nginx的alias指令,用法可以參考:https://www.jb51.net/article/154640.htm
實(shí)現(xiàn)步驟
為了實(shí)現(xiàn)以上的訪問形式,我們需要用到nginx里面的location指令和alias指令,配置如下
location ^~ /${PROJECT}/ { alias {$PATH}; try_files $uri $uri/ @${PROJECT}; location ~ \.php$ { fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } } location @${PROJECT}{ rewrite /${PROJECT}/(.*)$ /${PROJECT}/index.php?/$1 last; }
說明: 上面的這個(gè)配置中的${PROJECT}和{$PATH}都是屬于在實(shí)際過程中需要替換的部分,其中${PROJECT}為url需要訪問的path部分,如project1,{$PATH}則代表的是項(xiàng)目的真實(shí)訪問路徑,如/data/wwwroot/project1,以http://www.dev.com/project1 訪問為例,那么對應(yīng)的Nginx的配置是這樣子的
location ^~ /project1/ { alias /data/wwwroot/project1/public; try_files $uri $uri/ @project1; location ~ \.php$ { fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } } location @project1{ rewrite /project1/(.*)$ /project1/index.php?/$1 last; }
對于project2和project3的配置只需要按照上面的配置模板依葫蘆畫瓢就可以了,最后完整nginx配置如下
server { listen 80; server_name http://www.dev.com; access_log /data/wwwlogs/nginx/access_log/www.dev.com_nginx.log combined; error_log /data/wwwlogs/nginx/error_log/www.dev.com_errr_log; index index.html index.htm index.php; # project1開始的配置 location ^~ /project1/ { alias /data/wwwroot/project1/public; try_files $uri $uri/ @project1; location ~ \.php$ { fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } } location @project1{ rewrite /project1/(.*)$ /project1/index.php?/$1 last; } # project2開始的配置 location ^~ /project2/ { alias /data/wwwroot/project2/public; try_files $uri $uri/ @project2; location ~ \.php$ { fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } } location @project2{ rewrite /project2/(.*)$ /project2/index.php?/$1 last; } # project2開始的配置 location ^~ /project3/ { alias /data/wwwroot/project3/public; try_files $uri $uri/ @project3; location ~ \.php$ { fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } } location @project3{ rewrite /project3/(.*)$ /project3/index.php?/$1 last; } # 解析所有的.php location ~ \.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天,不寫入訪問日志 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { expires 30d; access_log off; } #js css文件的配置,此處是做緩存 ,緩存7天,不寫入訪問日志 location ~ .*\.(js|css)?$ { expires 7d; access_log off; } location ~ /\.ht { deny all; } }
關(guān)于怎么在nginx中實(shí)現(xiàn)一個(gè)域名配置多個(gè)laravel項(xiàng)目就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。