简介
- Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;
- 也是一个IMAP、POP3、SMTP代理服务器;
- Nginx可以作为一个HTTP服务器进行网站的发布处理
- Nginx可以作为反向代理进行负载均衡的实现。
代理服务器: 一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端。
反向代理服务器: 在服务器端接受客户端的请求,然后把请求分发给具体的服务器进行处理,然后再将服务器的响应结果反馈给客户端。
nginx特点
跨平台: Nginx 可以在大多数 Unix like OS编译运行,而且也有Windows的移植版本。
配置异常简单,非常容易上手: 配置风格跟程序开发一样,神一般的配置
非阻塞、高并发连接: 数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数。
事件驱动: 通信机制采用epoll模型,支持更大的并发连接。
master/worker结构: 一个master进程,生成一个或多个worker进程
内存消耗小: 处理大并发的请求内存消耗非常小。在3万并发连接下,开启的10个Nginx 进程才消耗150M内存(15M*10=150M)
成本低廉: Nginx为开源软件,可以免费使用
内置的健康检查功能: 如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。
节省带宽: 支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。
稳定性高: 用于反向代理,宕机的概率微乎其微
nginx安装
系统平台:CentOS release 6.6 (Final) 64位。
1.安装编译工具及库文件
yum install gcc gcc-c++
2.安装 PCRE
cd /usr/local/src/ //下载安装包
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.39.tar.gz
tar -zxvf pcre-8.39.tar.gz //解压
cd pcre-8.39 //进入安装包目录
./configure
make
make install //编译安装
3.安装zlib库
cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz //下载安装包
tar -zxvf zlib-1.2.11.tar.gz //解压
cd zlib-1.2.11 //进入安装包目录
./configure
make
make install //编译安装
4.安装openssl(某些vps默认没装ssl)
cd /usr/local/src //下载安装包
wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz
tar -zxvf openssl-1.0.1t.tar.gz //解压
5.安装nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.1.10.tar.gz
tar -zxvf nginx-1.1.10.tar.gz
cd nginx-1.1.10
./configure
make
make install
nginx配置
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www //创建 Nginx 运行使用的用户 www
配置nginx.conf
cat /usr/local/webserver/nginx/conf/nginx.conf
user www www;
worker_processes 2; #设置值和CPU核心数一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
.....
.....
#下面是server虚拟主机的配置
server
{
listen 80;#监听端口
server_name localhost;#域名
index index.html index.htm index.php;
root /usr/local/webserver/nginx/html;#站点目录
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
# access_log off;
}
location ~ .*\.(js|css)?$
{
expires 15d;
# access_log off;
}
access_log off;
}
}
启动 Nginx
/usr/local/webserver/nginx/sbin/nginx
nginx 其他命令
/usr/local/webserver/nginx/sbin/nginx -s reload // 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen // 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop // 停止 Nginx