一、简要说明(高性能的反向代理服务器->web服务器)
异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由伊戈尔·赛索耶夫创建并于2004年首次公开发布。
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。
Nginx在官方测试的结果中,能够支持五万个并行连接,而在实际的运作中,可以支持二万至四万个并行连接。
主要作用:
- 给客户端提供统一访问的入口,无论后面有多少应用服务器(如Tomcat,处理动态的语言、逻辑),都先访问nginx;
- 作为web服务器,对后端服务器提供负载均衡机制,负责平均分配转发请求到各个应用服务器。
二、Linux下二种源码安装方式
方式一:逐个手动安装
- Nginx安装前,需先安装下面3个包
1)ssl功能需要 openssl 库 ( 点击下载 ),编译工具及库文件;
2)gzip模块需要 zlib 库 ( 点击下载 ),编译工具及库文件;
3)rewrite模块需要 pcre 库 ( 点击下载 ),pcre作用是让 Nginx 支持 Rewrite 功能;
- 最后下载并安装Nginx
安装命令
# 安装编译工具及库文件openssl、zlib
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
# 安装pcre
cd /usr/local/src/
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-config --version
# 安装nginx
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
make
make install
/usr/local/webserver/nginx/sbin/nginx -v
注:若没有yum,需先安装,sudo yum install yum-utils。
方式二:shell脚本自动化安装
思路,下载好各安装包、将各命令拼接成完整的自动化.sh脚本。
后期补充
三、Nginx Linux基本配置及操作指令
Nginx.conf解析
- user -> 代表运行nginx使用的用户,一般用root即可;
创建 Nginx 运行使用的用户 username:
[root@ltc conf]# /usr/sbin/groupadd username
[root@ltc conf]# /usr/sbin/useradd -g username username
- worker_processes -> 指的是启动几个核,代表子进程的数量,一般配置跟CPU核数一致;
linux下查看CPU核数方法
1)执行命令cat /proc/cpu -> processor数量
2)输入top -> 按1
- worker_cpu_affinity -> 指的是绑定哪些核。设置方法,00000001 代表1核,00000010 代表2核 ... 1000000000000000 代表16核;
- worker_rlimit_nofile -> 限制并发数,指每个worker的并发数;
- worker_connections -> 每个worker的连接数;
- http 参数一般保持默认;
检查配置文件nginx.conf的正确性命令:./nginx -t
四、执行启动nginx
1. 进入sbin目录=> cd .../nginx/sbin
2. 启动=> ./nginx <重复执行该命令会报错>
3. 重启=> ./nginx -s reopen
4. 重新载入配置文件=> ./nginx -s reload
5. 停止 ./nginx -s stop
五、访问站点
六、安装中遇到的问题及解决方法
- [root@ltc sbin]# ./nginx
nginx: [warn] the number of "worker_processes" is not equal to the number of "worker_cpu_affinity" masks, using last mask for remaining worker processes
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
解决方法:
修改.../nginx/conf/nginx.conf中的worker_cpu_affinity与worker_processes个数一致;
参考资料:官方资料