这篇文章将为大家详细讲解有关怎么在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项目