把玩Nginx
最近在做服务器横向比较的一些资料,其中包括Nginx,也恰好有个朋友在学习部署Nginx,于是深入的把玩了一下Nginx。不过我比较懒...,不太想换到linux环境下,其实Windows下还是有办法搞的,网上资料也很多。要在Windows环境模拟PHP-FPM的话,需要自己动手写个程序监控php-cgi.exe的进程,只要解决这个问题,就能确保Windows环境下的php-cgi.exe的持久运行。 虽然说我一直不太喜欢Nginx,不过不得不佩服,Nginx的Windows版本是静态编译,只有一个EXE文件,没有其他动态库,而Nginx的主要功能和扩展都集成与此,不得不让我等怪癖之辈心生怜爱之心...呃,5MB,Windows版本的Lighttpd都要10MB,还是动态加载扩展。 话说Nginx的Rewrite,搞得我蛋疼了半天,终于摸清门道了,其实问题存在于他默认提供的那个配置文件(默认配置害人啊,真要不得)。 001 #user nobody; 002 worker_processes 1; 003 004 #error_log logs/error.log; 005 #error_log logs/error.log notice; 006 #error_log logs/error.log info; 007 008 #pid logs/nginx.pid; 009 010 011 events { 012 worker_connections 1024; 013 } 014 015 016 http { 017 include mime.types; 018 default_type application/octet-stream; 019 020 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 021 # '$status $body_bytes_sent "$http_referer" ' 022 # '"$http_user_agent" "$http_x_forwarded_for"'; 023 024 #access_log logs/access.log main; 025 026 sendfile on; 027 #tcp_nopush on; 028 029 #keepalive_timeout 0; 030 keepalive_timeout 65; 031 032 #gzip on; 033 034 server { 035 listen 9090; 036 server_name localhost; 037 038 #charset koi8-r; 039 040 #access_log logs/host.access.log main; 041 042 location / { 043 root html; 044 index index.html index.htm; 045 } 046 047 #error_page 404 /404.html; 048 049 # redirect server error pages to the static page /50x.html 050 # 051 error_page 500 502 503 504 /50x.html; 052 location = /50x.html { 053 root html; 054 } 055 056 # proxy the PHP scripts to Apache listening on 127.0.0.1:80 057 # 058 #location ~ .php$ { 059 # proxy_pass ; 060 #} 061 062 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 063 # 064 location ~ .php$ { 065 root html; 066 fastcgi_pass 127.0.0.1:9000; 067 fastcgi_index index.php; 068 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 069 include fastcgi_params; 070 } 071 072 # deny access to .htaccess files, if Apache's document root 073 # concurs with nginx's one 074 # 075 #location ~ /.ht { 076 # deny all; 077 #} 078 } 079 080 081 # another virtual host using mix of IP-, name-, and port-based configuration 082 # 083 #server { 084 # listen 8000; 085 # listen somename:8080; 086 # server_name somename alias another.alias; 087 088 # location / { 089 # root html; 090 # index index.html index.htm; 091 # } 092 #} 093 094 095 # HTTPS server 096 # 097 #server {