nginx 结合 apache 的配置开发环境

使用 apache 作为 php 服务器,nginx 作为代理服务器将所有的 php 请求转发给 apache,并集成了阿里巴巴的 nginx-http-concat 模块。

配置 apache

  1. 修改默认的端口号为 81

  2. http-vhost.conf解注释

  3. 配置 vhost

     <VirtualHost *:81>
         ServerAdmin example@qq.com
         DocumentRoot "path/to/document/root"
         ServerName assets.dxycdn.com
         <Directory "path/to/directory">
             Options Indexes FollowSymLinks
             AllowOverride all
             Require all granted
         </Directory>
     </VirtualHost>
    
  4. 添加 php 支持

    • 解开 httpd.conf 中的
      LoadModule php5_module libexec/apache2/libphp5.so

    • 添加

        <FilesMatch "\.php$">
        	SetHandler	application/x-httpd-php
        </FilesMatch>
      

安装 nginx

  1. 下载 nginx 源码以及 nginx-http-concat 模块

  2. 编译安装

    • 先安装 pcre,Mac 下可以通过 brew 来安装

        brew install pcre
      
    • 安装 nginx

        $ ./configure --add-module=path/to/nginx-http-concat
        $ make && make install
      

配置 nginx

修改 nginx.conf,添加以下内容:

# assets
server {
	listen  80;
	server_name assets.dxycdn.com;
	
	location / {
		root path/to/document/root;
		
		index index.html index.htm;
		autoindex on;
		
        # 开发环境中将 *-min.js 和 *-min.css 重写为对应的未压缩过的版本
		rewrite ^(.+)\-min\.(js|css)(.*)$ $1.$2$3 last;
		
		# nginx-http-concat
		concat on;
		concat_max_files 20;
		concat_types text/css application/javascript;
	}
	
    # 转发 php 请求到 apache 服务器
	location ~ \.php$ {
		proxy_pass  http://127.0.0.1:81;
	}

	# 字体添加 access header,允许跨域使用
	location ~* \.(eot|ttf|woff)$ {
		add_header Access-Control-Allow-Origin *;
	}
}

访问测试