葡京在线开户nginx配置

1.Nginx介绍

程序员总好还发明轮子,于是做了单车轱辘汇总。

 Nginx是一个非常轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和

「从零开始」系列

  • 从零开始写单编译器吧系列
    (知乎专栏)

  • 从零开始写一个简单的操作系统
    (伯乐在线)

  • 从零开始写 JavaScript
    框架
    (图灵社区)

  • 从零开始写 jQuery
    框架
    (蓝色理想 )

  • 从零开始 nodejs
    系列文章
    (粉丝日志)

  • 从零开始编写网络游戏
    ( 英特尔® 开发人员专区)

  • 从零开始编写好之 C#
    框架
    (博客园)

  • 哪些从零开始写一个 Chrome
    扩展?
    (知乎)

反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。

「自己动手」系列

  • 同等上时间用 Python
    写门语言
    (justjavac博客)

  • 运 Composer 一步一步构建协调之 PHP
    框架
    (吕文翰博客)

  • 团结动手写虚拟机
    (博客园)

  • 自己下手写 HTTP
    Server
    (CSDN)

  • 温馨动手写
    GC
    (并发编程网)

  • 和谐动手写一个引进系统
    (博客园)

  • 友善动手写压缩软件
    (博客园)

  • 友善下手开发编译器
    (博客园)


倘您意识了或创造了“从零开始”的篇章,可以当底部留言,或者当 github 上
pull request。

github
地址:Programming-Alpha-To-Omega

2.对PHP支持

 目前各种web 服务器对PHP的支持一共有三种:

(1)通过web
服务器内置的模块来实现,例如Apache的mod_php5,类似的Apache内置的mod_perl

可以对perl支持。

(2)通过CGI来贯彻,这个就是好比之前perl的CGI,该种方式的缺点是性差,因为老是服务器遇到

这些本子还亟待再次开动脚本解析器来施行下本然后将结果返回给服务器;

另一方面即使不太安全;该地方几乎很少动了。

(3)最新出现一样栽叫做FastCGI。所谓FastCGI就是本着CGI的精益求精。它一般以C/S结构,一般脚本处理器

会面启动一个或者多独daemon进程,每次web
服务器遇到脚本的时刻,直接付出受FastCGI的历程来施行,然后

拿获取的结果(通常也html)返回给浏览器。

2.1 Apache+mod_php模式

 我们很久一段时间使用经典的Apache+mod_php。

 Apache对PHP的支持是通过Apache的模块来支持的。如果从源代码编译安装PHP的话,如果希望Apache支持

PHP的话语,在./configure步骤需要指定–with-apxs2=/usr/local/apache2/bin/apxs
代表报告编译器通过

Apache的mod_php5/apxs来提供对PHP5的分析;而且于结尾一步make
install的时刻我们见面看将动态链接库

libphp5.so拷贝到apache2的装目录的modules目录下,并且还待以httpd.conf配置文件被补充加LoadModule

报句来动态将libphp5.so模块加载进来,从而实现Apache对php的支撑。

2.2 Nginx+FastCGI模式

 Nginx完全是轻量级的,必须借助第三方的FastCGI处理器才可以对PHP进行解析,因此其实这样看来Nginx是

非常灵活的,它可以跟其余第三着提供解析的微机实现连续从而实现对PHP的剖析(在nginx.conf中那个爱设置)。

 Nginx可以使用spwan-fcgi。在早期版本中需要安装lighttpd,但是在9.10版本以后直接安装spawn-fcgi就可以。

本面世了新的老三方的PHP的FastCGI处理器,叫做PHP-FPM,可以了解一下。本文是冲spawn-fcgi实现对

PHP模块的支持。

2.3 安装FastCGI

  /usr/bin/spawn-fcgi这个文件来管理 FastCGI,它原属于lighttpd这个包里面,但 9.10 后,spawn-fcgi

受分离出来单独成包。

(1)使用apt-get在线安装命令如下:

     $sudo apt-get install spawn-fcgi

(2)源代码安装如下,下载地址为:

     http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz

     解压缩以后,进入目录下执行如下安装命令:

     $./configure

     $make

     $make install

    安装之后,spawn-fcgi命令就可以直接使用了,它的可执行文件在/usr/local/bin/spawn-fcgi。

3.Nginx安装

3.1 安装Nginx

 (1)在线安装

      $sudo apt-get install nginx

  Nginx的版本是1.2.1

  ubuntu安装Nginx之后的文件结构大致为:

  所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下

  启动程序文件在/usr/sbin/nginx

  日志放在了/var/log/nginx中,分别是access.log和error.log

  并已经在/etc/init.d/下创建了启动脚本nginx

  默认的虚拟主机的目录设置在了/usr/share/nginx/www

(2)源代码安装

  下载地址:http://nginx.org/download/

  我这里下载的是 nginx-1.3.9.tar.gz,安装过程很简单,如下:

  $./configure

  $make

  $make install

  安装成功之后,nginx放置在/usr/local/nginx目录下,主要的配置文件为conf目录下的nginx.conf,

nginx的启动文件在sbin目录下之nginx文件。

3.2 启动Nginx

(1)在线安装的开行过程

  $sudo /etc/init.d/nginx start

(2)源代码安装的启动过程

  $cd /usr/local/nginx

  $sbin/nginx

  然后就可以访问了,http://localhost/ , 一切正常!如果不能访问,先不要继续,看看是什么原因,

缓解后再也持续。

  如果你的机器同时安装了Apache,那上面的访问方式就不能使用了,而且nginx都可能启动不了,这是

因为它都是故了80这端口。我们这里拿nginx的端口修改也8080,

此间关键修改nginx的安排文件nginx.conf,将瞬间即无异于执

   listen 80;

修改为

   listen 8080;

然后就可以访问了,http://localhost:8080/ 。

3.3 安装PHP和MySQL

  $sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql

3.4 测试Nginx对PHP的支持

(1)重新启动nginx:

  $/etc/init.d/nginx restart

(2)启动FastCGI:

  $spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi

  spawn-fcgi启动出现错误时,查看php-cgi是否安装,如果么有的话,安装php5-cgi。

  $sudo apt-get install php5-cgi

(3)测试

   打开http://localhost/phpinfo.php

4.Nginx配置

 Nginx的配置文件是/etc/nginx/nginx.conf,其中设置了一些必要的参数,我们发现其中这样的语句:

 include /etc/nginx/sites-enabled/*

 可以看出/etc/nginx/sites-enabled/default文件也是一个核心的配置文件,其中包含了主要的配置信息,

要服务器和目录、服务器名称、location信息以及server信息。

 对于源代码安装的nginx,配置文件为/usr/local/nginx/conf/nginx.conf。

下面主要说明location的匹配规则:

(1)= 前缀的命令严格匹配这个查询。如果找到,停止搜索。

(2)剩下的常规字符串,最丰富的配合优先利用。如果这匹配使用 ^~
前缀,搜索停止。

(3)正则表达式,按部署文件里之次第,第一只门当户对的让使用。

(4)如果第三步产生匹配,则利用这个结果。否则用第二步的配合结果。

在location中可以使用常规字符串和正则表达式。

如果使用正则表达式,你必须使用以下规则:

   (1)~* 前缀选择不区分大小写的匹配

   (2)~  选择区分大小写的匹配

例子:

 location = / {

# 只匹配 / 查询。

[ configuration A ]
}

location / {

# 匹配任何查询,因为有着请求都归因于 / 开头。

        # 但是正则表达式规则和长的块规则将被优先和查询匹配。

[ configuration B ]

}

location ^~ {

# 匹配任何以 开头的任何查询而已搜索。

       # 任何正则表达式将不会被测试。

[ configuration C ]

}

location ~* .(gif|jpg|jpeg)$ {

       # 匹配任何以 gif、jpg 或 jpeg 结尾的请求。

      # 然而所有  目录的请求将使用 Configuration C。

[ configuration D ]

}

此处而还要对正则表达式有早晚之了解!!!