author:咔咔
wechat:fangkangfk
我这里复制一份最初始的nginx.conf配置文件
user 设置nginx服务的系统使用用户 (一般情况下是处于注释状态)
worker_processes 工作进程数(一般跟cpu核数相同即可)
error_log nginx的错误日志
pid nginx服务启动时候pid
event 每个进程允许最大的连接数(一般10000左右)
2 #user nobody; 3 worker_processes 1; 4 5 #error_log logs/error.log; 6 #error_log logs/error.log notice; 7 #error_log logs/error.log info; 8 9 #pid logs/nginx.pid; 10 11 12 events { 13 worker_connections 1024; 14 } 15 16 17 http { 18 include mime.types; 19 default_type application/octet-stream; 20 21 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 22 # '$status $body_bytes_sent "$http_referer" ' 23 # '"$http_user_agent" "$http_x_forwarded_for"'; 24 25 #access_log logs/access.log main; 26 27 sendfile on; 28 #tcp_nopush on; 29 30 #keepalive_timeout 0; 31 keepalive_timeout 65; 32 33 #gzip on; 34 35 server { 36 listen 80; 37 server_name localhost; 38 39 #charset koi8-r; 40 41 #access_log logs/host.access.log main; 42 43 location / { 44 root html; 45 index index.html index.htm; 46 } 47 48 #error_page 404 /404.html; 49 50 # redirect server error pages to the static page /50x.html 51 # 52 error_page 500 502 503 504 /50x.html; 53 location = /50x.html { 54 root html; 55 } 56 57 # proxy the PHP scripts to Apache listening on 127.0.0.1:80 58 # 59 #location ~ \.php$ { 60 # proxy_pass http://127.0.0.1; 61 #} 62 63 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 64 # 65 location ~ \.php$ { 66 root html; 67 fastcgi_pass 127.0.0.1:9000; 68 fastcgi_index index.php; 69 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 70 include fastcgi_params; 71 } 72 75 # 76 #location ~ /\.ht { 77 # deny all; 78 #} 79 } 80 81 82 # another virtual host using mix of IP-, name-, and port-based configuration 83 # 84 #server { 33 #gzip on; 36 listen 80; 37 server_name localhost; 38 39 #charset koi8-r; 40 41 #access_log logs/host.access.log main; 42 43 location / { 44 root html; 45 index index.html index.htm; 46 } 47 48 #error_page 404 /404.html; 49 50 # redirect server error pages to the static page /50x.html 51 # 52 error_page 500 502 503 504 /50x.html; 53 location = /50x.html { 54 root html; 55 } 56 57 # proxy the PHP scripts to Apache listening on 127.0.0.1:80 58 # 59 #location ~ \.php$ { 60 # proxy_pass http://127.0.0.1; 61 #} 62 63 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 64 # 65 location ~ \.php$ { 66 root html; 67 fastcgi_pass 127.0.0.1:9000; 68 fastcgi_index index.php; 69 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 70 include fastcgi_params; 71 } 72 73 # deny access to .htaccess files, if Apache's document root 74 # concurs with nginx's one 75 # 76 #location ~ /\.ht { 77 # deny all; 78 #} 79 } 80 81 82 # another virtual host using mix of IP-, name-, and port-based configuration 83 # 84 #server { 85 # listen 8000; 86 # listen somename:8080; 87 # server_name somename alias another.alias; 88 89 # location / { 90 # root html; 91 # index index.html index.htm; 92 # } 93 #} 94 95 96 # HTTPS server 97 # 98 #server { 99 # listen 443 ssl; 100 # server_name localhost; 101 102 # ssl_certificate cert.pem; 103 # ssl_certificate_key cert.key; 104 105 # ssl_session_cache shared:SSL:1m; 106 # ssl_session_timeout 5m; 107 108 # ssl_ciphers HIGH:!aNULL:!MD5; 109 # ssl_prefer_server_ciphers on; 110 111 # location / { 112 # root html; 113 # index index.html index.htm; 114 # } 115 #} 116 117 include vhosts/*.conf;
下来就是我们最重要的一部分,那就是我们的默认配置语法,这块的代码我们抽离出来
这里我们主要来解释server这一层,、
listen这是端口
server_name这个你得域名,或者二级域名
root这个放置的是你得项目访问目录 :例如TP5来说,这里就可以放置127.0.0.1/tp5/public/
下面这个location /这个是将项目项目路径中的index.php去除掉
1 server { 2 listen 8081; 3 server_name 域名地址; 4 index index.html index.htm index.php; 5 root 项目访问路径; 6 location / { 7 rewrite ^/$/index.php last; 8 rewrite ^/(?!index\.php|robots\.txt|static|uploads)(.*)$ /index.php/$1 last; 9 } 10 location ~ \.php($|/) { 11 12 fastcgi_pass 127.0.0.1:9000; 13 fastcgi_index index.php; 14 fastcgi_split_path_info ^(.+\.php)(.*)$; 15 fastcgi_param PATH_INFO $fastcgi_path_info; 16 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 17 fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 18 include fastcgi_params; 19 } 20 21 if (!-e $request_filename) { 22 rewrite ^/(.*)$ /index.php/$1 last; 23 break; 24 } 25 access_log off; 26 }
对于location的详解
location = / {精确匹配,必须是127.0.0.1/ #规则A } location = /login {精确匹配,必须是127.0.0.1/login #规则B } location ^~ /static/ {非精确匹配,并且不区分大小写,比如127.0.0.1/static/js. #规则C } location ~ \.(gif|jpg|png|js|css)$ {区分大小写,以gif,jpg,js结尾 #规则D } location ~* \.png$ {不区分大小写,匹配.png结尾的 #规则E } location !~ \.xhtml$ {区分大小写,匹配不已.xhtml结尾的 #规则F } location !~* \.xhtml$ { #规则G } location / {什么都可以 #规则H }