Nginx简介
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师lgor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
1、Nginx特点
- 热部署:nginx在修改配置文件后,不需要重新启动,重新加载。
- 可以高并发连接:相同配置的服务器,nginx比apache能接受的连接很多。
- 低的内存消耗:相同的服务器,nginx比apache低的消耗。
- 处理器响应请求很快:nginx处理处理静态文件的时候,响应速度很快。
- 具有很高的可靠性。
2、Apache与Nginx服务器区别
1)nginx和apache的软件底层架构不一样。
- nginx的并发性要比apache好很多。
- nginx属于轻量级服务器软件,apache属于重量级软件。
- nginx在处理静态页面的效率要比apache好很多,apache在处理动态页面上的效率要比nginx高。
- apache在安全性要比nginx好。
2)运行模式不同
- apache运行PHP是通过加载php5模块运行,由于是apache去加载php5模块,所以每次修改了php.ini配置文件需要重新启动apache。
- nginx运行php是通过网络连接php-fpm(fastCGI)方式运行。php-fpm是一个独立的软件(默认端口:9000)。因此在nginx修改php.ini配置文件需要重新启动php-fpm。
3、负载均衡
说nginx那肯定就得说负载均衡,那什么是负载均衡?负载均衡服务器,分发请求到不同的服务器,使得流量平均分配。
4、反向代理
当然说到nginx也要说一哈反向代理。反向代理服务器具有代理请求到对应的服务器的功能,也具有缓存的功能。
5、代理服务器
代理服务器举个简单的例子来说:
a需要访问c,但是a不能够直接访问c,但是b可以访问c,a可以访问b。注意(敲黑板):a告诉b,帮忙访问c,把c的数据返回给a。
正向代理:内网访问外网。
反向代理:外网访问内网。
6、高可用(负载均衡的备用)
高可用服务器,用来监控负载均衡服务器,如果一旦负载均衡宕机,会直接替负载均衡服务器的工作,继续进行网络的分发工作。
7、安装nginx前准备
- 下载PCRE的安装包:wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
- 解压安装包:tar zxvf pcre-8.35.tar.gz
- 编译安装:cd pcre-8.35 ./configure make && make install (这是三条命令)
- 查看PCRE是否已经安装:pcre-config --version
8、安装Nginx
- 下载Nginx安装包:wget http://nginx.org/download/nginx-1.13.6.tar.gz
- 解压下载好的安装包:tar zxvf nginx-1.13.6.tar.gz
- 编译安装
cd nginx-1.13.6
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35
make && make install
- 查看Nginx版本信息:/usr/local/nginx/sbin/nginx -v
9、检查是否启动成功
打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。
- 重启:
$ /usr/local/nginx/sbin/nginx –s reload - 停止:
$ /usr/local/nginx/sbin/nginx –s stop - 测试配置文件是否正常:
$ /usr/local/nginx/sbin/nginx –t - 强制关闭:
$ pkill nginx
10、配置
以上安装方法nginx的配置文件位于:
/usr/local/nginx/conf/nginx.conf
nginx.conf中一些参数的简单介绍。
work_processess 1;(同时启动nginx的数量)
//单个进程的并发量
events{
worker_connctions 1024;
}
//复制一个server段,搭建一个新的虚拟机
server{
listen 80;//默认监听端口号
server_name localhost; //域名解析
//配置默认访问页面
localtion / {
root html; //网站根目录
index index.html index.htm;
}
//配置错误页面
location = /50x.html {
root html;
}
}