一直对Ngnix有“想法”,缺懒于去研究,因为没用不到啊,公司用的Apache,也仅是做伪静态化及抗并发。负载均衡用的是交换硬件实现。想了解apache的可以戳这里 Apache 学习。
一、什么是Ngnix(找度娘)
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:在连接高并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。
百度百科讲的还可以,贴进来 Ngnix百度百科
二、下载
1、环境Centos7.0 64位
Nginx: http://nginx.org/en/download.html 目前最新版本1.13.10 我下载1.12.2
2、度娘说的好,安装还需要三个库
gzip模块需要 zlib 库(http://www.zlib.net/ )(wget http://www.openssl.org/source/openssl-fips-2.0.9.tar.gz)
rewrite模块需要 pcre 库(http://www.pcre.org/ )(wget http://www.zlib.net/fossils/zlib-1.2.8.tar.gz)
ssl 功能需要openssl库(http://www.openssl.org/)(wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz)
3、依赖包安装顺序依次为:openssl、zlib、pcre, 然后安装Nginx包
4、如果没有安装c++编译环境,还得安装,通过yum install gcc-c++完成安装
三、安装
1、安装openssl
解压 tar -zxvf openssl-fips-2.0.9.tar.gz
进入目录 cd cd openssl-fips-2.0.9/
安装 ./config && make && make install
2、安装pcre
解压 tar -zxvf pcre-8.38.tar.gz
进入 cd pcre-8.38
安装 ./configure && make && make install
3、安装zlib
解压 tar -zxvf zlib-1.2.8.tar.gz
进入 cd zlib-1.2.8
安装 ./configure && make && make install
4、安装nginx
解压 tar -zxf nginx-1.12.2
cd nginx-1.12.2
安装 ./configure && make && make install
5、启动
启动 /usr/local/nginx/sbin/nginx
停止 /usr/local/nginx/sbin/nginx -s stop(重启reload)
四、使用
1、nginx.conf
[root@Server1 conf]# grep -v "#" nginx.conf | grep -v "^$"
#全局生效,主要设置nginx的启动用户/组,启动的工作进程数量,Nginx的PID路径,日志路径等。
worker_processes 1; #默认启动一个工作进程
events { #events设置快,主要影响nginx服务器与用户的网络连接,比如是否允许同时接受多个网络连接,使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最大连接数,是否开启对多工作进程下的网络连接进行序列化等。
worker_connections 1024; #设置nginx可以接受的最大并发,多个进程只和
}
http { #http块是Nginx服务器配置中的重要部分,缓存、代理和日志格式定义等绝大多数功能和第三方模块都可以在这设置,http块可以包含多个server块,而一个server块中又可以包含多个location块,server块可以配置文件引入、MIME-Type定义、日志自定义、是否启用sendfile、连接超时时间和单个链接的请求上限等。
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型
sendfile on; #是否调用 sendfile 函数(zero copy -->零copy方式)来输出文件,普通应用打开,可以大幅提升nginx的读文件性能,如果服务器是下载的就需要关闭,
keepalive_timeout 65; #长连接超时时间,单位是秒
server { #设置一个虚拟机主机,可以包含自己的全局快,同时也可以包含多个locating模块。比如本虚拟机监听的端口、本虚拟机的名称和IP配置,多个server 可以使用一个端口,比如都使用8090端口提供web服务、
listen 8090; #server的全局配置,配置监听的端口
server_name localhost; #本server的名称,当访问此名称的时候nginx会调用当前serevr内部的配置进程匹配。
location / { #location其实是server的一个指令,为nginx服务器提供比较多而且灵活的指令,都是在location中提现的,主要是基于nginx接受到的请求字符串,对用户请求的UIL进行匹配,并对特定的指令进行处理,包括地址重定向、数据缓存和应答控制等功能都是在这部分实现,另外很多第三方模块的配置也是在location模块中配置。
root html; #相当于默认页面的目录名称,默认是相对路径,可以使用绝对路径配置。
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html; #错误页面的文件名称
location = /50x.html { #location处理对应的不同错误码的页面定义到/50x.html,这个跟对应其server中定义的目录下。
root html; #定义默认页面所在的目录
}
}
}
可参考原文 https://www.cnblogs.com/zhang-shijie/p/5294162.html
Nginx负载均衡配置:https://www.cnblogs.com/jingmoxukong/p/5945200.html