高性能web服务器——nginx

一、 简介

1. nginx是什么?

l 是一个使用c语言开发的高性能的http服务器和反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。

l 是俄罗斯的程序设计师Igor Sysoev为俄罗斯访问量第二的 Rambler.ru 站点开发的。

2. nginx的优点?

l 轻量级

l 在应对高并发情况时,能保持低资源低消耗高性能

l 高度模块化的设计,配置简洁

l 官方测试nginx能够支撑5万并发量,并且cpu、内存等资源消耗却非常低,运行非常稳定

3. nginx的应用场景?

l http服务器。Nginx可以独立提供http服务,可以做网页静态服务器

l 虚拟主机。可以实现在一台服务器虚拟出多个网站

l 反向代理,负载均衡

4. nginx版本下载

l http://nginx.org/en/download.html

 

二、 nginx安装

1. 安装准备

l 输入

2. nginx安装

解压

 

高性能web服务器nginx和反向代理_nginx

 

 

进入解压目录

 

高性能web服务器nginx和反向代理_html_02

 

 

l 复制下面这段,执行configure,生成Makefile

./configure \

--prefix=/usr/local/nginx \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/temp/nginx/client \

--http-proxy-temp-path=/var/temp/nginx/proxy \

--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

--http-scgi-temp-path=/var/temp/nginx/scgi

编译

 

高性能web服务器nginx和反向代理_html_03

 

 

安装

 

高性能web服务器nginx和反向代理_服务器_04

 

 

创建链接

 

高性能web服务器nginx和反向代理_nginx_05

 

 

验证配置有没有问题

 

高性能web服务器nginx和反向代理_html_06

 

 

若出现少文件夹的报错,自己创建一下

 

高性能web服务器nginx和反向代理_html_07

 

 

3. nginx启动

检查防火墙,是关闭的状态

 

高性能web服务器nginx和反向代理_html_08

 

 

启动,查看进程

 

高性能web服务器nginx和反向代理_html_09

 

 

浏览器访问

 

高性能web服务器nginx和反向代理_html_10

 

 

4. nginx停止

关闭并查看进程

 

高性能web服务器nginx和反向代理_服务器_11

 

 

5. nginx刷新配置

启动后,若修改配置,如下刷新即可,不需要重启nginx

 

高性能web服务器nginx和反向代理_html_12

 

 

三、 nginx详解

1. nginx安装目录

 

高性能web服务器nginx和反向代理_html_13

 

 

l conf:nginx的配置文件

l html:nginx默认访问的根目录,存放静态资源

l sbin:存放nginx运行脚本

2. nginx配置文件

 

高性能web服务器nginx和反向代理_html_14

 

 

高性能web服务器nginx和反向代理_html_15

 

 

 

l worker_processes:工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。

l worker_connections:每个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。

l include:设置支持的文件类型,具体内容在mime.types中

l sendfile:sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。

l keepalive_timeout:keepalive超时时间。

l server:一个server就是一个虚拟机

l listen:server虚拟机的端口号

l server_name:server虚拟机的主机名

l location:默认访问的资源

l root html:虚拟主机的根目录

四、 nginx基本使用

1. web站点

如下目录,存的东西,外部可直接访问

 

高性能web服务器nginx和反向代理_服务器_16

 

 

2. 多虚拟主机

省钱,省事

直接修改配置

 

高性能web服务器nginx和反向代理_nginx_17

 

 

在原server下,再加一个server

 

高性能web服务器nginx和反向代理_html_18

 

 

复制一份html文件夹,叫py,跟配置对应上

 

高性能web服务器nginx和反向代理_html_19

 

 

修改index.html,让自己能区分

 

高性能web服务器nginx和反向代理_服务器_20

 

 

刷新配置

 

高性能web服务器nginx和反向代理_服务器_21

 

 

3. 404页面设置

配置里,可以把如下注释打开,自己创建错误页面

 

高性能web服务器nginx和反向代理_html_22

 

 

创建一个对应的404.html

 

高性能web服务器nginx和反向代理_html_23

 

 

刷新配置

 

4. nginx反向代理

如下,此时,访问80端口,实际上会转发到85端口

 

高性能web服务器nginx和反向代理_服务器_24

 

 

刷新配置

 

高性能web服务器nginx和反向代理_html_25

 

 

访问80,跳转到了85

 

高性能web服务器nginx和反向代理_服务器_26

 

 

5. nginx负载均衡

修改配置文件

 

添加负载均衡池,80端口反向代理到负载均衡池

 

高性能web服务器nginx和反向代理_nginx_27

 

 

下面多一个95端口的server

 

高性能web服务器nginx和反向代理_nginx_28

 

 

复制py,创建个p2,修改里面的index.html,有区分就行

 

高性能web服务器nginx和反向代理_html_29

 

 

刷新配置

 

高性能web服务器nginx和反向代理_服务器_30

 

 

页面访问,此时实现了反向代理到85和90,也是按照权重去访问的

 

高性能web服务器nginx和反向代理_nginx_31