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

高性能web服务器——nginx

一、 简介

1. nginx是什么?

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

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

2. nginx的优点?

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. 安装准备

输入 yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2. nginx安装

解压

 

进入解压目录

 

复制下面这段,执行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

编译

 

安装

 

创建链接

 

验证配置有没有问题

 

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

 

3. nginx启动

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

 

启动,查看进程

 

浏览器访问

 

4. nginx停止

关闭并查看进程

 

5. nginx刷新配置

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

 

三、 nginx详解

1. nginx安装目录

 

l conf:nginx的配置文件

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

l sbin:存放nginx运行脚本

2. nginx配置文件

 

 

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_timeoutkeepalive超时时间。

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

l listen:server虚拟机的端口号

l server_name:server虚拟机的主机名

l location:默认访问的资源

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

四、 nginx基本使用

1. web站点

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

 

2. 多虚拟主机

省钱,省事

直接修改配置

 

在原server下,再加一个server

 

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

 

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

 

刷新配置

 

3. 404页面设置

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

 

创建一个对应的404.html

 

刷新配置

4. nginx反向代理

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

 

刷新配置

 

访问80,跳转到了85

 

5. nginx负载均衡

修改配置文件

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

 

下面多一个95端口的server

 

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

 

刷新配置

 

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

 

原文地址:https://www.cnblogs.com/zhang-da/p/13045442.html