直接看nginx.conf文件
#设置用户和组
user root;
#启动子进程数,可通过ps aux | grep nginx查看
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 {
#每个进程可以处理的连接数,受系统文件句柄的限制
worker_connections 1024;
}
http {
#mine.types为文件类型定义文件
include mime.types;
#默认文件类型
default_type application/octet-stream;
#使用log_format可以自定义日志格式,名称为mian
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#创建访问日志,格式采用main就是上边定义的格式
#access_log logs/access.log main;
#允许上传的大小设置
client_max_body_size 50m;
#是否调用senfile()进行数据复制,sendfile是在内核级别完成复制数据的所以效率比一般的read,write高
sendfile on;
#开启后服务器的响应头部信息产生独立的数据包发送,即一个响应头信息一个数据包
#tcp_nopush on;
#保持连接的超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
#是否采用压缩功能,将页面压缩后传输更节省流量
#gzip on;
#使用server定义虚拟主机
server {
#服务器监听端口
listen 80;
#访问域名
server_name localhost;
#该主机的根目录,可选项
root /home/www/webroot/php/wordpress;
#该主机的主网页多值用空格隔开,执行先后顺序,从左到右,可选项
index index.php index.html;
#编码格式,如果网页编码与本格式不同,自动按此格式转换
#charset koi8-r;
#该主机访问日志,格式仍然用的是mian(前面设置的格式)
#access_log logs/host.access.log main;
#对URL进行匹配
location / {
#设置网站根路径,可使用相对路径,相对的是系统nginx安装的位置(/usr/local/nginx/),所以默认值是html代表的就是/usr/local/nginx/html,由于本人测试网站在/home/www/webroot/php/wordpress目录下,所以修改为如下设置用的绝对路径
root /home/www/webroot/php/wordpress;
#该主机的首页,多值用空格隔开,执行先后顺序,从左到右
index index.php;
}
#设置错误代码对应的路径,相对路径,这个也是相对nginx的安装路径即为/usr/local/nginx/html/404.html
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
#下面两块是关于支持php网页文件的方式,先看第一个
#通过Apache处理php文件,当访问php文件是交由服务器127.0.0.1服务器,通过proxy_pass可以实现代理功能处理php文件
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#代表匹配以php为结尾的URL
#location ~ \.php$ {
#php文件交给服务器127.0.0.1,通过proxy_pass实现php文件的处理
# proxy_pass http://127.0.0.1;
#}
#处理php文件,当访问php文件是交由服务器127.0.0.1:9000服务器,通过fastcgi_pass可以实现代理功能处理php文件
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
#如果URI以斜杠结尾,则将文件名(即index.php)附加到URI并存储在变量$ fastcgi_script_name中。
fastcgi_index index.php;
#此处有的设置$document_root$fastcgi_script_name,本人改了网站目录,关于fastcgi_param解释在文章最后。
fastcgi_param SCRIPT_FILENAME /home/www/webroot/php/wordpress$fastcgi_script_name;
#include代表加载的配置文件
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#定义拒绝all(所有人)访问.ht文件,all可以指定
#location ~ /\.ht {
# deny all;
#}
}
#定义虚拟主机
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
#定义https访问及相关设置,更安全
# HTTPS server
#
#server {
#监听端口
# listen 443 ssl;
#定义域名
# server_name localhost;
#指定证书文件,相对路径,存放于与nginx.conf同目录下,也可绝对路径
# ssl_certificate cert.pem;
#指定私匙文件,相对路径,存放于与nginx.conf同目录下,也可绝对路径
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
至此nginx简单配置,注意是简单配置。
下面内容摘自nginx中文网
fastcgi_param
syntax: fastcgi_param parameter value
default: none
context: http, server, location
该指令指定的参数,将被传递给FastCGI-server。
它可能使用字符串、变量及其它们的组合来作为参数值。如果不在此制定参数,它就会继承外层设置;如果在此设置了参数,将清除外层相关设置,仅启用本层设置。
下面是一个例子,对于PHP来说的最精简的必要参数:
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
参数SCRIPT_FILENAME 是PHP 用来确定执行脚本的名字,而参数QUERY_STRING 是它的一个子参数。
如果要处理POST,那么这三个附加参数是必要的:
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
如果PHP 在编译时使用了--enable-force-cgi-redirect选项,设置参数REDIRECT_STATUS 的值为200就是必须的了。
fastcgi_param REDIRECT_STATUS 200;