MySQL[Linux] PHP程序员玩转Linux体系-nginx初学者指引

1.PHP程序员玩转Linux体系-怎么设置使用CentOS

2.PHP程序员玩转Linux体系-lnmp环境的搭建

3.PHP程序员玩转Linux体系-搭建FTP代码开发条件

4.PHP程序员玩转Linux连串-备份还原MySQL

5.PHP程序员玩转Linux体系-自动备份与SVN

6.PHP程序员玩转Linux种类-Linux和Windows安装nginx

 

翻译自官网文档

nginx有一个master进度和不少个worker进度.master进度的重点目的是读取和履行配置文件,维持worker进度.worker进程真正处理请求.nginx基于事件模型和操作系统来分配worker进度,配置文件中的worker进度数一般安插成CPU的基业数.默许的配置文件名是nginx.conf,目录地址一般在/usr/local/nginx/conf/etc/nginx, 或者/usr/local/etc/nginx

 

始于,关闭和重载配置

nginx 开启

nginx -s reload 重新载入配置文件

nginx -s quit 优雅的退出

nginx -s reopen 重新打开日志文件

 

静态内容服务

打开配置文件,里面已经包涵了一个server块的事例

http {
    server {
    }
}

默认的nginx配置文件nginx.conf个中,使用include指令包括了/etc/nginx/conf.d/此目录下后缀为.conf的有所配置文件

http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

/etc/nginx/conf.d/目录下,编辑default.conf文本,平时会有众多的安插文件,每个配置文件中都有一个server块,nginx通过他们监听的端口和server_name来区分,它还会对请求头和server块里面location指令参数相比.

server {
    location / {
        root /var/www/html;
    }
}

其一location块指定了"/"前缀,相比较请求的URI,对于匹配到的URI,那几个URI会被拼接到root指令指定路线的前面.换句话说,在本土文件系统中去构成路径,就是去哀告/var/www/html.

万一这里有成千上万location指令,nginx会选用最长前缀的.上边的location块提供了一个最短前缀,唯有当其余兼具的location都尚未匹配到,才会动用它.

下一步,增添第一个localtion

server {
    location / {
        root /var/www/html;
    }
    location  {
        root /data;
    }
}

当呼吁以`开始,第二个location将会匹配到
(
location / `也会同盟到那些请求,可是她的前缀比第三个短)

今天它曾经得以当作web服务的布局文件正常干活了,监听80端口.在该地机械输入http://localhost就可以访问到该服务.当请求URI以`开头,服务器会响应/data/images目录下的文件.举例:当请求是http://localhostxample.png`,nginx会响应`/dataxample.png`文件.如果该文件不存在,nginx会响应404错误.

当呼吁的URI不以`开头,该请求会被映射到/var/www/html目录.举例:请求的URI是http://localhost/some/example.html`,nginx会响应`/var/www/html/some/example.html`文件.

选用新的安排,开启nginx或者发送reload信号给nginx的master进度,执行以下命令:

nginx -s reload

只要有不足预期的荒谬暴发,去access.log 和 error.log中找原因,这三个文本的目录在/usr/local/nginx/logs或者/var/log/nginx

 

陈设简单的反向代理服务

nginx最常用的功用就是当做反向代理服务器,意味着那个服务要吸收请求,把请求引到被代理的服务,从那里取回响应,发送给客户端.

咱俩将布置中央的反向代理服务器,那么些服务处理来自当地目录的图样文件的哀告,并把其他的所有请求发给代理服务器.在那么些例子中,六个劳务都会被定义在一个nginx实例中.

第一,定义一个代理服务器,在nginx配置文件中新添加一个server块,如下:

server {
    listen 8080;
    root /data/up1;

    location / {
    }
}

本条几乎的劳动监听8080端口(以前,大家从未运用过listen指令,因为默许是监听的80端口),映射所有的伸手到地头文件系统的/data/up1目录.创立那一个目录,在其中放入index.html文件.注意root指令放在了server上下文了.当location块下并未root指令时,这几个root指令将会被使用.

下一步,使用上一步中的服务协作,修改一下当作反向代理服务器配置.在第二个location块中,添加一个proxy_pass一声令下,在参数中指明协议名和代办服务的端口(在本例,它是http://localhost:8080)

server {
    location / {
        proxy_pass http://localhost:8080;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}

在第二个location块中,参数是个正则表明式,匹配所有后缀是.gif``.jpg或者.png的请求,使用正则表明式,应该在前边加上~.符合的请求将会被映射到/data/images目录下

 

布置法斯特(Fast)CGI代理服务

nginx可以用作去路由请求到法斯特(Fast)CGI服务,那样就足以运作一些各类框架和PHP的行使

最基本的nginx配置,使用fastcgi_pass指令替换proxy_pass指令,fastcgi_param一声令下设置传递给法斯特(Fast)CGI服务器的参数.假定法斯特(Fast)CGI服务器运行在localhost:9000.把上有些中的反向代理配置例子拿过来,修改参数为localhost:9000.在PHP中,SCRIPT_FILENAME参数被视作确定脚本名称,QUERY_STRING 被当作传递请求参数,配置如下:

server {
    location / {
        fastcgi_pass  localhost:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param QUERY_STRING    $query_string;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}

今日就创办了一个劳动,这一个服务将路由出了静态图片文件之外的所有请求到被代理的服务器.这一个被代理的服务器是经过法斯特CGI协议运行在localhost:9000上的.

 

网站地图xml地图