仅编译nginx,IOCP模型支持不好,所以必须加上select模型
./auto/configure --prefix="" --with-cc-opt="-D FD_SETSIZE=1024 -D __NO_MINGWW_LFS -D __WATCOMC__" --without-http_rewrite_module --without-http_gzip_module --with-select_module
编译nginx-rtmp-module
--add-module=/path/to-nginx/rtmp-module 然后去它的目录里把config里的USE_OPENSSL的值从YES改成NO。否则就要搞openssl
--with-http_ssl_module --with-openssl
编译的时候报错:
在ngx-rtmp_handshake.c里把 ngx_rtmp_make_digest函数体注释了,把包含的2个openssl头文件注释了,把NGX_RTMP_HANDSHAKE_KEYLEN定义成32
加入openssl来编译报错 gcc unrecognized -mno-cygwin, 干脆就进去openssl/makefile里把这句它删除了。
//-----------------------------------------------------------------------------------------------------------------
照着官网的教程来编译:
cd %nginx%
mkdir objs
mkdir objs/lib
cd objs/lib
tar -xzf ../../pcre-8.32.tar.gz
tar -xzf ../../zlib-1.2.7.tar.gz
tar -xzf ../../openssl-1.0.1e.tar.gz
写一个config文件,在mysys里运行:
auto/configure --with-cc=gcc --builddir=objs --prefix= \
--conf-path=conf/nginx.conf --pid-path=logs/nginx.pid \
--http-log-path=logs/access.log --error-log-path=logs/error.log \
--sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp \
--http-proxy-temp-path=temp/proxy_temp \
--http-fastcgi-temp-path=temp/fastcgi_temp \
--with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre-8.34 \
--with-zlib=objs/lib/zlib-1.2.8 --with-openssl=objs/lib/openssl-1.0.1f \
--with-select_module --with-http_ssl_module --with-ipv6 \
--add-module=objs/lib/nginx-rtmp-module-master
nginx虚拟目录设置 alias 和 root
使用nginx设置root时要注意一个问题,就是如果该root设置的前端目录不是根目录,那么在写root的绝对地址时,要把前端目录的部分省略掉。
我们用设置虚拟目录指向的alias来和root比较一下就非常明显了
alias
location /abc/
{
alias /home/html/abc/;
}
在这段配置下,http://test/abc/a.html就指定的是 /home/html/abc/a.html。这段配置亦可改成
root
location /abc/
{
root /home/html/;
}
装了LNMP, conf文件中的 localtion / { } 节被重定向到了php, 比如index.php