共计 3484 个字符,预计需要花费 9 分钟才能阅读完成。
今天丸趣 TV 小编给大家分享一下 Ubuntu 下 Nginx 如何安装与配置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
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 来实现,这个就好比之前 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)源代码安装如下,下载地址为:
解压缩以后,进入目录下执行如下安装命令:
$./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)源代码安装
下载地址:
我这里下载的是 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 ^~ /images/ {
# 匹配任何以 /images/ 开头的任何查询并且停止搜索。
# 任何正则表达式将不会被测试。
[configuration c]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何以 gif、jpg 或 jpeg 结尾的请求。
# 然而所有 /images/ 目录的请求将使用 configuration c。
[configuration d]
}
以上就是“Ubuntu 下 Nginx 如何安装与配置”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,丸趣 TV 小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注丸趣 TV 行业资讯频道。