Nginx虚拟主机配置,支持独立urlwrite 文件,php-fpm独立用户

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 14:19 点击:

Nginx 虚拟主机 环境配置。

最近租了台服务器,准备做一些网站。纠结apache/nginx很久,最后选定了Nginx+php-fpm。

因为可能会有几个站,为了安全,我希望每个站点直接都能尽量独立,避免互相影响。

主要实现功能:


-能够相对快捷的添加虚拟主机。
-每个虚拟主机直接相对独立,避免一个网站有漏洞,全服务器手影响
-能够方便的配置urlrewrite,还是需要reload或restart ( 谁让nginx 不支持像 .htaccess 这样吗方便的东西呢?)
-每个虚拟主机能独立配置php.ini


上面是废话,下面就是大概实现方法。


一、主要环境


CentOS 5.7, Nginx 1.06 PHP 5.2.17(php-fpm)
安装过程省略,我基本都是编译安装在 /usr/local/ 下面。


二、Web目录结构&权限


/home/$USER$/            用户
|-- $DOMAIN$            域名
    |-- logs
    |   |-- access.log        访问日志
    |   `-- .nginx        用户Nginx,可以定义urlrewrite 即使不需要也要创建,空内容,因为 nginx 配置文件中要include~。
    `-- wwwroot            用户存放web文件
         `-- index.html

 

权限:
Home目录下的全部目录(除了用户后来创建的)都是711, 用户组和其他用户都只能进入目录,不能查看目录有什么文件。

home下的所有文件文件(除了用户后来创建的)都是644,目录所有者能读写,用户组内的和其他用户只能读。

将 umask 都设置成 0022,这样的话用户创建的目录就是 755,能访问,能读取(显示目录下的文件)。创建的文件则是644,所有者能读写,用户组的和其他用户只能读取。

 

三、基本实现

1.在/(也可以是其他)目录下创建vhost目录。
2.在 /vhost 目录下创建logs目录用于记录日志(php-fpm)。
3.在 /vhost 目录下对应每个虚拟主机的用户创建一个用户目录。
4.在用户目录内创建该用户的虚拟主机的目录,目录名称为主域名(比如:qq.com)。
5.再在域名目录下创建 nginx.conf 和 php-fpm.conf 。nginx.conf 会被 主的nginx.conf 包含,里面指定了web目录等配置。php-fpm.conf 是php-fpm启动时读取的配置文件,指定了执行php的用户和组,socket端口等配置。
6.在 /vhost 目录下创建 chHosts.sh,该文件用户遍历/vhost目录下存在那些虚拟主机,记录下来,写入到 /vhost/hosts 文件,以便使用。 hosts 内容大概如下:


user1/qq.com
user2/yahoo.com
user3/google.com
user3/yahoo.com


7.在 /vhost 目录下创建 php-fpm 文件,该文件用于启动每个虚拟主机的php-fpm 修改自默认的php-fpm,借助hosts的内容,读取每个主机的php-fpm配置文件启动各自的php-fpm。

8.在主 nginx 的配置文件中的 http{ } 中添加下面内容,我是删了所有的server{}的~


    # VHOST
    include   /vhost/*/*/nginx.conf;
vhost 目录结构大致如下:

.
|-- user1
|   `-- qq.com
|       |-- nginx.conf
|       |-- php-fpm.conf
|       |-- php-fpm.pid
|       `-- php-fpm.socket
|-- chHosts.sh
|-- hosts
|-- logs
|   `-- user1_qq.com.log
`-- php-fpm


php-fpm.conf 文件内容大致如下:


<?xml version="1.0" ?>
<configuration>
    <section name="global_options">
        <value name="pid_file">/vhost/user1/qq.com/php-fpm.pid</value>  <!-- 记录主进程pid -->
        <value name="error_log">/vhost/logs/user1_qq.com.log</value>    <!-- 记录php-fpm错误日志 -->
        <value name=&q

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • VMware View 5.0从菜鸟到高手系列 -连接虚拟桌面
      • kvm中的windows使用Vmware的显示驱动
      • VMware Linux使用Xshell登陆
      • 虚拟机安装MAC查看电脑CPU是否支持VT技术
      • VMWare NAT Centos6.2静态ip设置
      • Virtual Box下同时配置host-only和bridge
      • vmware虚拟机浅析-虚拟网卡
      • VirtualBox打开虚拟硬盘失败的问题
      • 给虚拟机提速的方法

      快速直达

      操作系统导航

      LinuxWindows虚拟机
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1