Nginx简介
nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现,其主要特点为占用内存小,处理并发能力强悍,在国内被广泛采用。目前像阿里,京东,腾讯,百度,新浪,网页等国内的互联网巨头公司都在使用。
Nginx下载与安装(Windows)
Nginx的下载地址:http://nginx.org/en/download.html
下载完成之后直接将压缩包解压即可,此时文件目录内容如下:
启动和停止
Nginx解压完毕之后,直接双击nginx.exe 即可启动,当Nginx启动之后,通过打开cmd,到nginx目录,输入nginx -s 命令可以实现停止nginx和重新加载配置文件。
nginx -s stop #立即停止
nginx -s quit #停止,在Nginx停止前会等待当前正在进行的任务
nginx -s reload # 重新加载配置文件
Nginx的配置
当用户使用浏览器输入ip:port/path 访问,程序获取浏览器获取到Http请求报文,然后对URI部分(也就是path部分)进行解析,在本地文件系统或者其他IO资源中找到对应的资源,通过封装一个Http响应报文,将资源内容放入响应体中写回给浏览器,浏览器就会对其进行解析并展示(或者下载),这就完成了最简单的Http服务器。Nginx作为普通HttpServer,打开niginx.conf配置文件,其配置写入的内容:
worker_processes:为工作进程的数量,这里如果不填的话默认为CPU核心数,事实上数量为CPU核心数也是最优配置,因为此时,理论上操作系统发生进程切换的的代价最小。
events.worker_connections:每个工作进程的最大连接数。
error_log:为发生错误时的日志输出路径。
块级指令 http {} 算是映射的主体了,整体包含在其中,access_log指定该http的日志路径(此项也可以配置在server{}内),放到http{}内。
upstream name{ }:服务器集群名称,可用作负载均衡,其中weight是权重的意思,权重越大,分配的概率就越大。
server{} 内有 location / {} 项,nginx会根据location后面的路径和ip:port/path中的path做匹配,如果匹配到,则从里面配置的本地目录下寻找请求的资源。一个server{} 下也可以有多个location配置,而且location配置也可以跟正则表达式。nginx的匹配优先级为,正则,长路径,短路径。关于正则的配置必须以~开头,后面跟要匹配的文件名正则表达式。
Nginx可作为代理服务器
反向代理(Reverse Proxy)是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对于反向代理服务器的攻击并不会使网页信息遭到破坏,这样就增强了Web服务器的安全性。
Nginx作为代理服务器,作为代理的访问逻辑如下图:
将上面配置好的静态文件服务器作为目标WebServer,首先将配置文件的http{}块中追加以下内容:
server {
listen 8080;
location / {
proxy_pass http://localhost:80;
}
}
通过打开cmd,到nginx目录,使用nginx -s reload重新加载配置文件,在浏览器中输入localhost:8080/index.html可以看到浏览器输出如下:
server{listen 8080;} 表明启动一个http-server监听在8080端口(注:此项不填默认为80端口,但前面的静态服务器已经占用了80端口,此处就为其他端口)。
proxy_pass的URL,然后在将结果返回给浏览器。此时的localhost:8080/index.html请求相当于在请求localhost:80/index.html
Nginx下载与安装(Linux)
1.编辑源码包需要先安装gcc
2.安装nginx需要准备4个安装包
3.先进入/usr/local/,分别下载以下源码包:
nginx: :wget http://nginx.org/download/nginx-1.8.0.tar.gz
openssl :wget http://www.openssl.org/source/openssl-fips-2.0.9.tar.gz
zlib :wget http://zlib.net/zlib-1.2.11.tar.gz
pcre :wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
4.先编译安装openssl:(注意:当前路径为/usr/local/)
解压openssl:tar zxvf openssl-fips-2.0.9.tar.gz
进入解压后的目录:cd openssl-fips-2.0.9
编译安装:./config && make && make install
5.然后编译安装pcer,下面的安装步骤和上面类似:(注意:这里需要回到/usr/local/在执行解压和编译安装步骤)
tar zxvf pcre-8.38.tar.gz
cd pcre-8.36
./configure && make && make install
6.编译安装zlib:
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure && make && make install
7.最后安装nginx
tar zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure && make && make install
8.启动nginx:/usr/local/nginx/sbin/nginx
9.修改配置文件
切换目录:[root@localhost nginx-1.8.0]# cd /usr/local/nginx/conf
修改文件:[root@localhost conf]# vi nginx.conf
配置内容与上面windows配置相同。