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)源代码安装如下,下载地址为:
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 ^~ /images/ {
# 匹配任何以 /images/ 开头的任何查询并且停止搜索。
# 任何正则表达式将不会被测试。
[ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何以 gif、jpg 或 jpeg 结尾的请求。
# 然而所有 /images/ 目录的请求将使用 Configuration C。
[ configuration D ]
}
这里你还要对正则表达式有一定的了解!!!
5.手动安装问题解决
出错:
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
解决:
sudo apt-get install libpcre3 libpcre3-dev
出错:/configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
解决:
sudo apt-get install libssl-dev
相关推荐
**Nginx安装与解决跨域问题** 在现代Web开发中,由于浏览器的同源策略,跨域问题经常出现,限制了不同源之间的通信。Nginx作为一个高性能的反向代理服务器,常被用于处理此类问题。本篇将详细介绍如何在Linux环境下...
在安装 Nginx 之前,需要安装编译工具及库文件,包括 make、zlib、zlib-devel、gcc-c++、libtool 和 openssl、openssl-devel。这些工具和库文件都是 Nginx 安装所必须的。 2. PCRE 安装 PCRE 是 Nginx 的一个重要...
本教程将详述如何在离线环境下在Linux系统上安装Nginx,同时结合lua-resty库实现与MySQL和Redis的集成,以及安装过程中可能遇到的问题及其解决方案。 一、离线安装Nginx 1. 首先,确保系统已经安装了必要的依赖,...
(4) Linux下Nginx+Resin负载均衡,session问题解决实例 - 21 - 1) 测试环境: - 21 - 2) 安装步骤: - 22 - a)在server1 上安装配置 nginx + nginx_upstream_jvm_route - 22 - b)分别在两台机器上 安装 resin - 22 -...
同时,日志文件(默认位于`/var/log/nginx/access.log`和`error.log`)可以帮助诊断和解决问题。 7. **反向代理与负载均衡**: Nginx可以通过反向代理功能将请求转发到后端应用服务器,实现负载均衡,提高系统可用...
标题“nginx-离线安装rpm依赖”表明我们要关注的是如何收集和处理Nginx安装所需的RPM依赖。这通常包括Nginx本身以及它依赖的各种库,如pcre(Perl Compatible Regular Expressions)、openssl和zlib等。 1. **Nginx...
在Linux环境中,Nginx是一款广泛应用的开源HTTP服务器和反向代理服务器,它以其高性能、稳定性和丰富的模块扩展性而闻名。...在无网络的环境下,解决依赖问题需要提前规划和准备,确保所有必要的库都已包含在内。
6. **编译和安装Nginx**:使用`make`命令编译源代码,然后运行`make install`将Nginx安装到系统中。 7. **配置Nginx服务器**:在`nginx.conf`文件中,需要配置RTMP部分以接收和处理RTMP流。这通常涉及到定义一个...
### CentOS 下 Nginx 安装操作文档 #### 概述 本文档旨在提供一份详细的指导,帮助用户在 CentOS 系统中成功安装 Nginx 1.11.4 版本及其所需依赖包。Nginx 是一款高性能的 HTTP 和反向代理 Web 服务器,同时也是一...
在Linux环境中,离线安装Nginx及其依赖项,特别是openssl模块,是一项常见的任务,尤其在没有互联网连接或者网络受限的服务器上。...记得在安装过程中密切关注错误信息,以便及时解决可能出现的问题。
对Nginx和Tomcat的日志进行监控,以便及时发现和解决问题。 通过以上步骤,你已经在CentOS上成功安装了Nginx,并将其与Tomcat进行了有效整合。这只是一个基础配置,实际生产环境中可能需要根据具体需求进行更复杂...
4. **处理未解决的依赖问题**:如果在安装过程中遇到未解决的依赖问题,dpkg可能会报告错误。在这种情况下,你需要找到缺失的依赖包,并重复步骤2和3。有时,可能需要使用`dpkg --force-depends`强制安装,但这可能...
在Linux环境中,特别是对于内网环境,安装Nginx服务器时可能会遇到因网络限制无法自动获取和安装依赖的问题。在这种情况下,预先准备好的Nginx依赖包就显得尤为重要。本主题将详细介绍如何在CentOS7系统下,通过提供...
5. **最后安装Nginx**:确保所有依赖都已解决后,安装Nginx: ``` dpkg -i nginx_*.deb ``` 6. **配置Nginx**:安装完成后,配置Nginx以适应您的需求。编辑`/etc/nginx/nginx.conf`文件,并根据需要调整监听端口...
- **Nginx介绍**:Nginx是由Igor Sysoev开发的,其设计目标是解决高并发下的性能问题。Nginx通过优化的多进程和异步非阻塞模型,提高了响应速度和资源利用率。 - **反向代理服务**:Nginx的反向代理功能可以隐藏...
《FastDFS分布式存储服务器与Nginx安装配置详解》 在现代互联网应用中,数据的存储和访问效率至关重要。FastDFS作为一个轻量级的分布式文件系统,被广泛应用于中小型企业的文件存储服务,而Nginx作为高性能的反向...
### CentOS系统下Nginx服务器的安装步骤及常见问题解决 #### 一、概述 本文档详细介绍了在CentOS操作系统中安装Nginx服务器的具体步骤,并针对安装过程中可能遇到的几个常见错误给出了相应的解决方案。Nginx是一款...
在Ubuntu 20.04系统中离线安装Nginx是一个相对复杂的过程,因为通常我们依赖于apt-get在线更新和安装软件。然而,在没有网络连接或者需要在隔离环境中部署时,就需要通过手动方式来完成。这个过程涉及到下载Nginx的...
### Nginx安装手册(Linux) #### 环境准备 在进行Nginx的安装之前,需要确保服务器上已经安装了必要的依赖包。这些依赖包括GCC编译器、pcre库及其开发文件、zlib压缩库及其开发文件以及openssl加密库及其开发文件...
在IT行业中,尤其是在服务器管理和系统部署的领域,离线安装软件是解决网络不稳定或无网络环境下的重要手段。...通过这种方式,即使在无网络环境下,也能确保Nginx及其他软件的顺利安装和有效运行。