位置:海鸟网 > IT > linux/Unix >

把玩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 {