Nginx安装与使用教程详解_nginx

前言

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。(百度百科- http://www.dwz.cn/x32kG)

1.Nginx安装

我使用的环境是64位 Ubuntu 14.04。nginx依赖以下模块:

l gzip模块需要 zlib 库

l rewrite模块需要 pcre 库

l ssl 功能需要openssl库

1.1.安装pcre

1. 获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本

2. 解压缩pcre-xx.tar.gz包。

3. 进入解压缩目录,执行./configure。

4. make & make install

1.2.安装openssl

1. 获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。

2. 解压缩openssl-xx.tar.gz包。

3. 进入解压缩目录,执行./config。

4. make & make install

1.3.安装zlib

1. 获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。

2. 解压缩openssl-xx.tar.gz包。

3. 进入解压缩目录,执行./configure。

4. make & make install

1.4.安装nginx

1. 获取nginx,在http://nginx.org/en/download.html上可以获取当前最新的版本。

2. 解压缩nginx-xx.tar.gz包。

3. 进入解压缩目录,执行./configure

4. make & make install

若安装时找不到上述依赖模块,使用--with-openssl=<openssl_dir>、--with-pcre=<pcre_dir>、--with-zlib=<zlib_dir>指定依赖的模块目录。如已安装过,此处的路径为安装目录;若未安装,则此路径为编译安装包路径,nginx将执行模块的默认编译安装。

启动nginx之后,浏览器中输入http://localhost可以验证是否安装启动成功。

从配置可以看出,nginx监听了80端口、域名为localhost、跟路径为html文件夹(我的安装路径为/opt/nginx-1.7.7,所以/opt/nginx-1.7.7/html)、默认index文件为index.html, index.htm、服务器错误重定向到50x.html页面。

可以看到/opt/nginx-1.7.7/html/有以下文件:

tyler@ubuntu:/opt/nginx-1.7.7/html$ ls

50x.html index.html

这也是上面在浏览器中输入http://localhost,能够显示欢迎页面的原因。实际上访问的是/opt/nginx-1.7.7/html/index.html文件。

2.2.mime.types

文件扩展名与文件类型映射表,nginx根据映射关系,设置http请求响应头的Content-Type值。当在映射表找不到时,使用nginx.conf中default-type指定的默认值。例如,默认配置中的指定的default-type为application/octet-stream。

include mime.types;
default_type application/octet-stream;

默认

下面截一段mime.types定义的文件扩展名与文件类型映射关系,完整的请自行查看:

2.3.fastcgi_params

nginx配置Fastcgi解析时会调用fastcgi_params配置文件来传递服务器变量,这样CGI中可以获取到这些变量的值。默认传递以下变量:

这些变量的作用从其命名可以看出。

2.4.fastcgi.conf

对比下fastcgi.conf与fastcgi_params文件,可以看出只有以下差异:

tyler@ubuntu:/opt/nginx-1.7.7/conf$ diff fastcgi.conf fastcgi_params
2d1
< fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

即fastcgi.conf只比fastcgi_params多了一行“fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;”

原本只有fastcgi_params文件,fastcgi.conf是nginx 0.8.30 (released: 15th of December 2009)才引入的。主要为是解决以下问题(参考:http://www.dwz.cn/x3GIJ):

原本Nginx只有fastcgi_params,后来发现很多人在定义SCRIPT_FILENAME时使用了硬编码的方式。例如,fastcgi_param SCRIPT_FILENAME /var/www/foo$fastcgi_script_name。于是为了规范用法便引入了fastcgi.conf。

不过这样的话就产生一个疑问:为什么一定要引入一个新的配置文件,而不是修改旧的配置文件?这是因为fastcgi_param指令是数组型的,和普通指令相同的是:内层替换外层;和普通指令不同的是:当在同级多次使用的时候,是新增而不是替换。换句话说,如果在同级定义两次SCRIPT_FILENAME,那么它们都会被发送到后端,这可能会导致一些潜在的问题,为了避免此类情况,便引入了一个新的配置文件。

因此不再建议大家使用以下方式(搜了一下,网上大量的文章,并且nginx.conf的默认配置也是使用这种方式):

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

而使用最新的方式:

include fastcgi.conf;

2.5.uwsgi_params

与fastcgi_params一样,传递哪些服务器变量,只有前缀不一样,以uwsgi_param开始而非fastcgi_param。

2.6.scgi_params

与fastcgi_params一样,传递哪些服务器变量,只有前缀不一样,以uwsgi_param开始而非fastcgi_param。

2.7.koi-utf、koi-win、win-utf

这三个文件都是与编码转换映射文件,用于在输出内容到客户端时,将一种编码转换到另一种编码。

koi-win: charset_map koi8-r < -- > windows-1251

koi-utf: charset_map koi8-r < -- > utf-8

win-utf: charset_map windows-1251 < -- > utf-8

koi8-r是斯拉夫文字8位元编码,供俄语及保加利亚语使用。在Unicode未流行之前,KOI8-R 是最为广泛使用的俄语编码,使用率甚至起ISO/IEC 8859-5还高。这3个文件存在是因为作者是俄国人的原因。

时间: 2024-09-20 06:02:36

Nginx安装与使用教程详解_nginx的相关文章

CentOS6.5下Tomcat7 Nginx Redis配置步骤教程详解_Linux

所有配置均在一台机器上完成,部署拓扑信息如下: 注意:由于Redis配置对jar包和tomcat版本比较严格,请务必使用tomcat7和本文中提供的jar包. 下载地址: http://pan.baidu.com/s/1bO67Ky tomcat: tomcat1 localhost:8080 tomcat2 localhost:9080 nginx: localhost:1210 redis: localhost:6379 1. tomcat的安装和配置 1. 在server.xml文件中,修

MySQL5.7.10 安装文档教程详解

1.安装依赖包 yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison 2.安装boost库: 首先先查询是否已经安装过boost rpm -qa boost* 卸载旧boost-*等库: yum -y remove boost-* 下载Boost库,在解压后复制到/usr/local/boost目录下,然后重新cmake并在后面的

Centos下编译安装Nginx教程详解_nginx

一.安装nginx时必须先安装相应的编译工具 yum -y install gcc gcc-c++ autoconf automake yum -y install zlib zlib-devel openssl openssl-devel pcre-devel 建立nginx 组 groupadd -r nginx useradd -s /sbin/nologin -g nginx -r nginx id nginx zlib:nginx提供gzip模块,需要zlib库支持 openssl:n

nginx rewrite重写规则与防盗链配置方法教程详解_nginx

导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标记的几种形式,盗链时返回403错误,允许的域名直接跟在第二行的域名后面. nginx rewrite重写规则与防盗链配置方法如下所示: nginx rewite 规则,官方文档:http://wiki.nginx.org/NginxHttpRewriteModule nginx rewrite规则格式:rewrite regex replacement flag flag标记有四种格式: last – 相

Bootstrap 4 的安装与配置教程详解

Bootstrap 4 刚刚发布了预览版,离正式版还有一段时间.不过现在我们已经可以使用 Bootstrap 4 了,看看里面有什么新东西. 最简单的方法就是使用 Bootstrap 的 CDN ,把需要的样式表与 JS 文件链接到网页上,不过这样你不能去编辑 Bootstrap ,比如去定制里面的一些选项.下面我们使用 Git 去克隆一份 Bootstrap 仓库到本地. # 进入到桌面 cd ~/desktop # 为项目创建目录并进入这个目录 mkdir ninghao-bootstrap

比较完整的Nginx配置文件nginx.conf常用参数中文详解_nginx

概述 Nginx使用有两三年了,现在经常碰到有新用户问一些很基本的问题,我也没时间一一回答,今天下午花了点时间,结合自己的使用经验,把Nginx的主要配置参数说明分享一下,也参考了一些网络的内容,这篇是目前最完整的Nginx配置参数中文说明了.更详细的模块参数请参考:http://wiki.nginx.org/Main 配置总结 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日

nginx中配置php-FPM教程详解

nginx中配置php-FPM教程 nginx 可以直接调用FPM来驱动php,从此就可以放弃apache了.什么原因不多说了. 先下载php5.4的安装包. 照别人的说法  代码如下 复制代码 ./configure --enable-fastcgi --prefix=/data1/server/php-cgi --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --with-mysql

Mac OSX安装LAMP环境教程详解

  Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache 和 php,在brew的帮助下非常容易手动搭建,可控性很高 Brewbrew对于mac,就像apt-get对于ubuntu,安装软件的好帮手,不能方便更多... brew的安装方式如下: ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)

CentOS 6.6 安装 Tengine 的教程详解

在先前的文章中介绍过Tengine,先前只是使用了运维人员配置好的内容,未自己进行过安装配置.周末闲来无事,对于Tengine进行了尝试性的安装.记录下面方便以后再做改进. Tengine官网上有个非常简单的教程,中间并未涉及到一些常用的设置,所以仅供参考.一下午为本人的安装步骤及过程. 1.安装必要的编译环境好 由于Tengine安装需要使用源代码自行编译,所以在安装前需要安装必要的编译工具: Shell # yum update # yum install gcc gcc-c++ autoc