记录学习nginx配置文件的基础内容解释!!!

3 篇文章 0 订阅
2 篇文章 0 订阅
本文详细介绍了Nginx配置文件的基础内容,包括设置用户和组、worker_processes、error_log、events、http、server、listen、server_name、root、index等关键配置。重点讲解了处理PHP文件的fastcgi_pass、fastcgi_index、fastcgi_param等参数,特别是fastcgi_param的SCRIPT_FILENAME用法。文章旨在帮助读者深入理解Nginx的基本配置和PHP处理机制。
摘要由CSDN通过智能技术生成

直接看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;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值