Ubuntu中Nginx服务器安装配置教程

   Nginx是一个非常轻量级的HTTP服务器,也是一个高性能的HTTP和反向代理服务器,同时还是一个IMAP/POP3/SMTP 代理服务器。

  1.对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)返回给浏览器。

  1.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的支持。

  1.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模块的支持。

  1.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。

  2.Nginx安装

  2.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文件。

  2.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/。

  23安装PHP和MySQL

  $sudo apt-get install php5-cliphp5-cgimysql-server php5-mysql

  2.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

  3.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 ^~ /images/ {

  # 匹配任何以 /images/ 开头的任何查询并且停止搜索。

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

  [ configuration C ]

  }

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

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

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

  [ configuration D ]

  }

  这里你还要对正则表达式有一定的了解!!!

时间: 2024-12-29 18:06:17

Ubuntu中Nginx服务器安装配置教程的相关文章

关于ubuntu中qt5环境配置得问题

问题描述 关于ubuntu中qt5环境配置得问题 在网上下了qt-opensource-linux-x64-5.5.0-2.run,在ubuntu14.10中安装,没有任何问题,安装之后写了个小程序 运行之后发现:-1: error: cannot find -lGL :-1: error: collect2: error: ld returned 1 exit status 发现网上给的答案是安装libgl1-mesa-dev 结果下列软件包有未满足的依赖关系: libgl1-mesa-dev

ubuntu下SVN服务器安装配置 下的svn 常用命令

ubuntu下SVN服务器安装配置 一.SVN安装1.安装包$ sudo apt-get install subversion 2.添加svn管理用户及subversion组$ sudo adduser svnuser$ sudo addgroup subversion$ sudo addgroup svnuser subversion   3.创建项目目录$ sudo mkdir /home/svn$ cd /home/svn$ sudo mkdir fitness$ sudo chown -

Ubuntu中Nginx的安装与配置详细说明_Linux

1.Nginx介绍      Nginx是一个非常轻量级的HTTP服务器,Nginx,它的发音为"engine X", 是一个高性能的HTTP和 反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器. 2.对PHP支持      目前各种web 服务器对PHP的支持一共有三种:    (1)通过web 服务器内置的模块来实现,例如Apache的mod_php5,类似的Apache内置的mod_perl 可以对perl支持.    (2)通过CGI来实现,这个就好比之前p

ubuntu系统中Nginx环境配置安装步骤

安装nginx sudo apt-get install nginx Ubuntu安装之后的文件结构大致为:     所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下     程序文件在/usr/sbin/nginx     日志放在了/var/log/nginx中     并已经在/etc/init.d/下创建了启动脚本nginx     默认的虚拟主机的目录设置在了/var/www/nginx-default (有的

linux中Apache更Nginx环境配置教程

想把Apache2.2换Nginx已经有些日子,今天给动手了.找了个稳定版本:1.4.1  http://nginx.org/download/nginx-1.4.1.zip 配置很简单,就是nginx跟php-cgi的进程管理有点子麻烦. 但是,只要会点bat,也是很简单的事情.贴一下自己的两个管理nginx.php-cgi的bat文件. 1. start_nginx_php-cgi.bat    代码如下 复制代码     @echo off     echo Starting PHP Fa

linux中squid stunnel代理服务器安装配置教程

代理服务器,就不用介绍了,简单说一下安装过程.开始的时候在hosting24上面,安装,怎么安装都没有成功,换成linode,半个小时就搞定了,猜测hosting24对代理做了限制. 一,服务器说明 一台国外的vps(推荐linode),服务端squid 一台公司内部的PC机,能访问外网就行,客户端stunnel 要达到的目的,公司内部人员,连接公司内部的pc机,通过stunnel通道连接远端squid,上外网查资料,谷歌,众里寻你千百度,蓦然回首你却在高墙外头.唉. 二,服务端安装squid

linux中srs流媒体服务器安装配置教程

流媒体服务器,用过red5和crtmp,srs red5安装简单,性能一般,集群配置无文档,用户量大的话,就不要用了. crtmp安装简单,性能良好,集群配置简单,但是配置集群时需要指定从服务器的rtmp的流地址,做点播还是比较合适的,做直播不是很合适了. srs安装简单,性能良好,集群配置简单,多样化,可惜没有连接池,所以要自己做了个请求的统一入口. 1,srs下载 http://ossrs.net/srs.release/releases/index.html 选择正式发形版 2,安装 #

ubuntu系统中puref-ftpd安装配置教程

1.安装pureftpd sudo apt-get install pure-ftpd sudo apt-get install pure-ftpd-mysql 2.创建数据库和存放ftp用户表 CREATE TABLE `users` (  `User` VARCHAR(16) NOT NULL DEFAULT '',  `Password` VARCHAR(64) NOT NULL DEFAULT '',  `Uid` VARCHAR(11) NOT NULL DEFAULT '-1',  

Ubuntu下LAMP环境配置教程(linux)_Linux

据说搞好LAMP也就是Linux+Apache+Mysql+php就已经相当于一个中级php程序猿的水平,当然你的php要得会才行,之后就是搞好各种框架.其实这东西,并不神秘,非常简单.甚至比Windows还简单,各种变量都自动帮你搞好了.你的畏惧主要来自于你的无知. 建议先通过phpnow1.5.6在Windows一键搭好php环境,然后通过Mysql_Gui_Tools图形化Mysql,把php工程写好,把php工程.Mysql数据库导入导出到Linux上面跑,Linux纯属就是跑工程,不做