核心做法:

涉及三类配置文件

1. 基础文件 conf/nginx.conf

# 说明:nginx默认会引用该文件,该文件会做最通用的参数设置

2. fastcgi参数文件 conf/fastcgi.conf

# 说明:fastcgi会设置所有站点通用参数

3. 站点文件 如:conf/vhost/a.com.conf 可以有多个,放在vhost文件夹下

彼此引用说明

在基础文件conf/nginx.conf中插入include *.conf 引用站点文件

站点文件中合适位置插入include fastcgi.conf 设置fastcgi,如果要覆盖参数,可以在引用再赋值一次即可

nginx配置文件里指令的继承关系:Nginx配置文件分为好多块,常见的从外到内依次是「http」、「server」、「location」等等,缺省的继承关系是从外到内,也就是说内层块会自动获取外层块的值作为缺省值

详细说明:

nginx.conf中设置基础参数,内容如下:

#用户及用户组设置

user  www www;

worker_processes  1;

#错误级别的日志设置

error_log logs/error.log;

#其他级别的日志设置

#error_log logs/error.log notice;

#error_log logs/error.log info;

pid logs/nginx.pid;

events {

use epoll;

worker_connections 1024;

}

http {

#fastcgi_intercept_errors on;

#error_page  404 ;

include       mime.types;

default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log main;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 300m;

sendfile        on;

tcp_nopush     on;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

#keepalive_timeout  0;

keepalive_timeout  60;

tcp_nodelay on;

server_tokens off;

gzip  on;

gzip_min_length  1k;

gzip_buffers     4 16k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_types       text/plain application/x-javascript text/css application/xml;

gzip_vary on;

#未绑定域名返回404

server {

listen 80 default;

fastcgi_intercept_errors on;

error_page 404 /404.html;

location /404.html {

root /data/web/404;

internal;

}

}

#加载每个站点conf文件

include vhost/*.conf;

}

单个站点conf文件放在conf/vhost文件夹下,比如建立一个a.com.conf,内容见下方:

server {

#监听端口

listen 80;

#request大小

client_max_body_size 50M;

#绑定域名,用空格分开多个域名

server_name a.com www.a.com;

#不带www域名做301跳转

if ( $host != 'www.a.com' ) {

#return方法,效率更高

return 301 http://www.a.com$request_uri;

#rewrite写法

#rewrite ^/(.*)$ http://www.a.com/$1 permanent;

}

#默认首页

index index.php index.html index.htm;

#站点目录

set $root_path '/data/wwwroot/a.com/web/';

root $root_path;

#日志前缀设置

#set $log 'a.com'

#访问日志

#access_log logs/$log_access.log main;

#错误日志

#error_log logs/$log_error.log;

#伪静态

location / {

#ci框架

#try_files $uri $uri/ /index.php?$query_string;

#phalcon框架

#try_files $uri $uri/ /index.php?_url=$uri&$args;

}

#php文件采用fastcgi解析并设置参数

location ~ \.php {

fastcgi_index  /index.php;

fastcgi_pass   127.0.0.1:9000;

#加载fastcgi.conf文件中的参数

include fastcgi.conf;

#设置有权限目录,fastcgi.conf中默认设置就是站点目录$document_root,如果要改变就需要重新赋值

#phalcon或laravel举例

#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root../:/data/tmp/php/upload/:/proc/";

}

#禁止下载伪静态文件

location ~ /\.ht {

deny all;

}

}

conf/fastcgi.conf内容:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_URI       $document_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param  REDIRECT_STATUS    200;

# 用一个文件或状态码(=404)作为最后一个参数,如果是最后一个参数是文件,那么这个文件必须存在

try_files $fastcgi_script_name = 404;

#可以自定义值,比如区分开发(dev)和生成环境(product),在php中用getenv('MY_ENV')或$_SERVER['MY_ENV']获取

fastcgi_param MY_ENV "product";

#防跨站设置

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root:/data/tmp/php/upload/:/proc/";

需要说明的:Nginx有两份fastcgi配置文件,分别是旧的「fastcgi_params」和新的「fastcgi.conf」,它们没有太大的差异,唯一的区别是后者比前者多了一行「SCRIPT_FILENAME」的定义,只需要引用一份新的配置文件fastcgi.conf即可

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;#脚本文件请求的路径

fastcgi_param  QUERY_STRING       $query_string; #请求的参数;如?app=123

fastcgi_param  REQUEST_METHOD     $request_method; #请求的动作(GET,POST)

fastcgi_param  CONTENT_TYPE       $content_type; #请求头中的Content-Type字段

fastcgi_param  CONTENT_LENGTH     $content_length; #请求头中的Content-length字段。

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name; #脚本名称

fastcgi_param  REQUEST_URI        $request_uri; #请求的地址不带参数

fastcgi_param  DOCUMENT_URI       $document_uri; #与$uri相同。

fastcgi_param  DOCUMENT_ROOT      $document_root; #网站的根目录。在server配置中root指令中指定的值

fastcgi_param  SERVER_PROTOCOL    $server_protocol; #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;#cgi 版本

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;#nginx 版本号,可修改、隐藏

fastcgi_param  REMOTE_ADDR        $remote_addr; #客户端IP

fastcgi_param  REMOTE_PORT        $remote_port; #客户端端口

fastcgi_param  SERVER_ADDR        $server_addr; #服务器IP地址

fastcgi_param  SERVER_PORT        $server_port; #服务器端口

fastcgi_param  SERVER_NAME        $server_name; #服务器名,域名在server配置中指定的server_name

#fastcgi_param  PATH_INFO         $path_info;#可自定义变量

# PHP only, required if PHP was built with –enable-force-cgi-redirect

#fastcgi_param  REDIRECT_STATUS    200;

在php可打印出上面的服务环境变量

如:echo $_SERVER['MY_ENV'] //只适配nginx,不适用cli模式,cli模式必须设置系统变量,mac下在~/.bash_profile

nginx内置变量

默认编码问题

注:php.5.6默认是utf-8,必须改成自动适配

# php.ini里面的配置

; default_charset = "UTF-8"

#不能注释,必须改成下面的形式,不然还是默认utf-8

default_charset = ""

关于伪静态

需要说明的是:rewrite regex replacement [flag]; regex指的是url中的字符串

location / {

rewrite ^/news-(\d+).html$ /news.php?cat_id=$1 last;

#将news.php?cat_id=110伪静态成news-110.html

}

nging支持PATH_INFO

支持ssi

在http{}或者server中的location / {}中添加如下代码即可:

ssi on;

ssi_silent_errors on;

ssi_types text/shtml;

php fastcgi配置_ngnix下conf通用设置方法(php fastcgi)相关推荐

  1. Linux操作系统下共享文件夹设置方法介绍

    Linux操作系统下共享文件夹设置方法介绍    首先要在系统上安装samba模块 sudo apt-get install samba sudo apt-get install smbfs 下面我们 ...

  2. linux设置为共享文件夹,Linux系统下共享文件夹设置方法介绍

    Linux系统下共享文件夹设置方法介绍 作者 HonestQiao 2008年02月21日 16:00 首先当然是要安装samba了,呵呵: sudo apt-get install samba su ...

  3. 硬盘录像机服务器地址谁控制的,海康硬盘录像机通用设置方法

    自动录像的设置进入录像设置,将开启录像打勾,进入设置界面 如果是全天录像,可直接将"全天录像"打钩,在选择相应的录像方式.(如果是移动侦测或报警录像的话,需要分别设置相应的布防). ...

  4. 海康硬盘录像机通用设置方法

    自动录像的设置    进入录像设置,将开启录像打勾,进入设置界面     如果是全天录像,可直接将"全天录像"打钩,在选择相应的录像方式.(如果是移动侦测或报警录像的话,需要分别设 ...

  5. linux如何启动网络配置文件,linux系统的网络配置教程 Ubuntu系统网络设置方法网络配置linux及Ubuntu通过修改配置文件进行网络配置...

    Windows系统网络配置方法 一.设置网络 1)Windows打开cmdcmd 输入ipconfig  /all 可以看到 修改为静态IP Ubuntu修改网络为静态IP 设置虚拟机: 查看IPif ...

  6. linux mysql移植_linux 下mysql 移植设置方法

    环境: db01:10.10.10.101 db03:10.10.10.103 需求: 将db01上mysql做完整移植,迁移到db03 详细步骤: 1. 打包db01上/app目录并scp到db03 ...

  7. 路由器下接路由器设置方法(路由器级联)

    这个属于路由器的级联.不同的路由器有不同的方法. 路由器级联 在单位兼职网管,现在遇到了复杂的问题.又开始重新学习网络知识,下面是今天所学.量变引起质变.多多积累. 路由器的接口不够,可级联交换机来扩 ...

  8. linux mysql 客户端编码设置_Windows、Linux系统下mysql编码设置方法_MySQL

    bitsCN.com 方法1 怎样手工修改mysql4.1以上版本默认编码 使用php5+MySQL 4.1.x/5.x 环境: mysql4导入mysql5容易出现中文乱码情况,因此,首先你需要做如 ...

  9. php css下划线,CSS文字下划线的设置方法介绍

    在整体网页设计中,最容易识别的风格仍然是带有下划线的蓝色文字,这大部分都是链接到另一个网页中.链接元素默认具有样式,蓝色是默认模式下的唯一颜色.即使现在的链接元素可能不再需要加下划线,文本下的行不仅仅 ...

最新文章

  1. MOG2 成员函数参数设定
  2. 用tigervnc远程控制centos x64 6.2
  3. 在Outlook中修改脱机文件(.ost)的保存位置
  4. matlab聚类算法,科学网—matlab-聚类算法笔记 - 孙月芳的博文
  5. pcl程序如何在linux上运行,Ubuntu系统安装PCL 1.9及以上版本
  6. netty大白话--helloword(一)
  7. VS2008中的一些命令窗口
  8. visualmap超过范围改变颜色_换种颜色,换种心情——车身改色
  9. 计算机硬件基础电路参数测量,硬件电路设计基础知识.doc
  10. 如何开发微信公众号后台
  11. 消息钩子入门篇(4)---示例__外壳钩子(WH_SHELL)
  12. QTableView效率优化3 - 自定义Model的内容补充
  13. java 微信 源码_java微信支付功能实现源码
  14. python打印质数(素数)
  15. pmf源解析_科研进展 | 不同燃烧排放的一次有机物源谱特征及其在源解析中的应用...
  16. 该文件没有与之关联的程序来执行操作。解决方案
  17. 视觉组考核——装甲板识别
  18. matlab画图双坐标轴和多坐标轴代码
  19. 如何合理安排测试团队人员分工的问题?
  20. uni-app注册全局组件

热门文章

  1. springboot LogBack日志压缩
  2. 浅谈可重复访问城市的TSP问题(最短距离 + 具体走法)
  3. 移动端 -- 禁止苹果微信浏览器的下拉回弹
  4. 《Netty权威指南 第2版》学习笔记(1)---服务端与客户端开发入门
  5. IOS – OpenGL ES 图像侵蚀边缘黑白模糊 GPUImageErosionFilter
  6. SpringCloudAlibaba史上最全电子书(阿里云学习中心整理)
  7. 魔域口袋版服务器维护,谈谈魔域口袋版更新的一些建议及客服答复
  8. 苏教版三年计算机教案,苏教版小学三年级信息技术《信息与信息技术》教案
  9. iOS 判断屏幕是否锁屏
  10. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园志愿者服务系统u7thd