全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Nginx配置多站点需要踩的坑

从Windows下的Apache转移到Linux下的Nginx,发现有很多坑需要踩。
以下就做个简单的记录,方便后来者爬坑。

配置Nginx,一般会遇到以下几个坑:

  •  配置nginx支持pathinfo模式 
  • - 优化URL,隐藏index.php 
  • - 同一服务器配置多站点 

配置pathinfo模式

在server(也就是你的站点,一个server对应一个站点)中输入以下内容:

location ~ ^(.+\.php)(.*)$ {
 root html/[站点目录]; #配置站点目录路径
 fastcgi_split_path_info ^(.+\.php)(.*)$;
 fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
 fastcgi_index index.php;
 include fastcgi_params;
 fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
 fastcgi_param PATH_INFO $fastcgi_script_name;
}

其中root html/[站点目录]这个一定要填写跟你server的站点目录路径,要不它默认为html,从而导致路径解析失败。会出现的现象就是,在之前配置的location中定义了root路径也无法生效,访问http://localhost会跳转到/usr/local/nginx/html/index.php[index.html],因为我的nginx是源码安装,所以路径可能不同,yum安装的话一般会在/usr/share/nginx/html/index.php[index.html].(PS:原默认关于fastcgi的配置可以注释掉)

隐藏index.php

隐藏index.php,大多数是采用Nginx的重写规则来进行的。
下面,就是博主的列出的一个参考:

location / {
 root html/[站点目录];
 index index.php;

 if (!-e $request_filename) {
  rewrite ^(.*)$ /index.php/$1;
 }
}

这里的站点目录是你程序(框架)的index.php所在的目录。例如,CI框架的话,root html/ci,其中index.php位于html/ci/index.php.

本质上,隐藏index.php文件就是重写URL。具体详细用法可以参考Nginx重写模块的官方文档:Module ngx_http_rewrite_module

同一服务器多站点配置

一般一台服务器不会单一的运行一个站点,往往是运行多个站点的。

在Nginx配置多站点是非常简单,便捷的。正如,前面所说的,一个server对应一个站点。例如:

server {
 listen 80;
 server_name www.leslie.net.cn;
 location / {
 ....
 }
}
server {
 listen 80;
 server_name www.hellomyfrend.top;
 location / {
 ....
 }
}

这样,就配置了两个站点,分别为www.leslie.net.cn和www.hellomyfrend.top.

这里贴一份配置文件作为参考:

user nginx nginx;
worker_processes 2;
#error_log logs/error.log;
error_log logs/error.log notice;
#error_log logs/error.log info;
pid  logs/nginx.pid;
events {
 worker_connections 1024;
}
 http {
 include  mime.types;
 default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
#     '$status $body_bytes_sent "$http_referer" '
#     '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
 rewrite_log on;
 sendfile  on;
#tcp_nopush  on;
#keepalive_timeout 0;
 keepalive_timeout 65;
#gzip on;
 server {
  listen 80;
  server_name  pay.zf2.com;
  location / {
   root html/zf2/pay/public;
   index index.php index.html index.htm; 
   if (!-e $request_filename){
    rewrite ^/(.*)$ /index.php/$1;
   }
  }
  location ~ ^(.+\.php)(.*)$ {
   root html/zf2/pay/public;
   fastcgi_split_path_info ^(.+\.php)(.*)$;
   fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 
   fastcgi_index index.php;
   include fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
   fastcgi_param PATH_INFO $fastcgi_script_name;
  }
 }
 server {
  listen 80;
  server_name mp.zf2.com;
  location / {
   root html/zf2/server/public;
   index index.php index.html index.htm;
   if (!-e $request_filename){
   rewrite ^(.*)$ /index.php/$1;
   }
  }
  location ~ ^(.+\.php)(.*)$ {
   root html/zf2/server/public;
   fastcgi_split_path_info ^(.+\.php)(.*)$;
   fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 
   fastcgi_index index.php;
   include fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
   fastcgi_param PATH_INFO $fastcgi_script_name;
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# nginx多站点配置  # nginx  # 配置多个站点  # 配置站点  # nginx 多站点配置方法集合  # Nginx 多站点配置实例详解  # Nginx 的多站点配置方案  # Nginx+Tomcat多站点部署的方法  # docker Nginx PHP-FPM单机多站点布署的方法  # Nginx环境下WordPress的多站点功能配置详解  # Nginx多ip部署多站点的实现步骤  # 重写  # 几个  # 多个  # 有很多  # 会在  # 一台  # 跟你  # 做个  # 分别为  # 本质上  # 配置文件  # 大家多多  # 跳转到  # 默认为  # 服务器配置  # 文档  # 转移到  # PATH_INFO  # br  # http 


相关文章: 香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  网站制作说明怎么写,简述网页设计的流程并说明原因?  用v-html解决Vue.js渲染中html标签不被解析的问题  建站之星如何取消后台验证码生成?  建站主机选购指南:核心配置与性价比推荐解析  如何在服务器上配置二级域名建站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  济南企业网站制作公司,济南社保单位网上缴费步骤?  安徽网站建设与外贸建站服务专业定制方案  如何在宝塔面板中修改默认建站目录?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  西安大型网站制作公司,西安招聘网站最好的是哪个?  深入理解Android中的xmlns:tools属性  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  建站之星安装后如何自定义网站颜色与字体?  电商平台网站制作流程,电商网站如何制作?  网站制作价目表怎么做,珍爱网婚介费用多少?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  相册网站制作软件,图片上的网址怎么复制?  ,石家庄四十八中学官网?  如何通过山东自助建站平台快速注册域名?  如何通过服务器快速搭建网站?完整步骤解析  网站制作服务平台,有什么网站可以发布本地服务信息?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站之星导航菜单设置与功能模块配置全攻略  如何快速查询域名建站关键信息?  定制建站如何定义?其核心优势是什么?  定制建站流程步骤详解:一站式方案设计与开发指南  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  建站之星备案流程有哪些注意事项?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  视频网站制作教程,怎么样制作优酷网的小视频?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  建站之星后台管理:高效配置与模板优化提升用户体验  建站主机功能解析:服务器选择与快速搭建指南  如何通过虚拟主机快速完成网站搭建?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  C++如何使用std::optional?(处理可选值)  大连 网站制作,大连天途有线官网?  如何在香港免费服务器上快速搭建网站?  高防服务器租用指南:配置选择与快速部署攻略  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。