零基础学习Nginx
第一章:基础篇
1.1 Nginx 介绍
Nginx( 发音同 engine x) 是一款轻量级的 Web 服务器/ 反向代理服务器及电子邮件
(IMAP/POP3)代理服务器,。
最早由俄罗斯的程序设计师 Igor Sysoev 所开发,并在一个 BSD-like 协议下发行。其特点是轻量级,占有内存少,并发能力强,目前发展势头强劲.
web 领域最经典的 lamp 组合已变成 lnmp 组合.
1.1.1 谁在用 Nginx
淘宝网,网易新闻,腾讯网等等。
1.1.2 Nginx 的占有率变化:
世界范围内,排名前 1000,10000 的网站的 webserver 比例
1.2 Nginx 编译与启动
1.2.1编译安装
到官方网站 寻找最新 stable 版,
安装准备: nginx 依赖于 pcre 库,要先安装 pcre
#yum install pcre pcre-devel #cd /usr/local/src/#wget http://nginx.org/download/nginx-1.4.2.tar.gz # tar zxvf nginx-1.4.2.tar.gz#cd nginx-1.4.2./configure --prefix=/usr/local/nginx #make && make install
为什么要先安装 pcre?
因为:nginx 要在 rewrite 时要解析正则表达式,PCRE 是正则解析库
1.2.2 nginx 目录介绍:
cd /ulsr/local/nginx, 看到如下 4 个目录
./
....conf 配置文件
... html 网页文件
...logs 日志文件
...sbin 主要二进制程序
1.2.3 启动 nginx
# cd /usr/local/nginx# ./sbin/nginx
没有出现错误提示,则启动成功了.
如果有错误,则根据错误提示再做处理. 常见的错误是”80 端口被占用”
1.2.4、 80 端口被占用的解决
如果出现不能绑定 80 端口,80 端口已经被占用
# ./sbin/nginxnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already i use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already i use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already innginx: [emerg] still could not bind()
(有时是自己装了 apache,nginx 等,还有更多情况是操作系统自带了 apache 并作为服务启动)
解决: 把占用 80 端口的软件或服务关闭即可.
如果是 linux 系统自带 apache 且自动启动. service httpd stop
如果是自行编译安装的,可以#/path/to/apacht/bin/apachctl stop
如果检测确实没有其他程序占据 80 端口,但仍报此错,则可能是因为 Nginx 试图同时监听
IPV4 和IPV6 的80 端口导致的.(nginx1.4.0 版本曾有此问题)
server { listen :80; listen [::]:80;}
可以按如下2 种办法修改
server { listen 80; listen [::]:80 ipv6only=on;}
或者
server {listen [::]:80;}
1.3 Nginx 命令参数
如果不愿意用信号来控制, nginx 程序也可以一些参数,达到效果如:
nginx -t 测试配置是否正确
nginx -s reload , 作用:加载最新配置nginx -s reopen 作用: 重新打开日志nginx -s stop 作用: 立即停止nginx -s quit 作用: 优雅停止
————————
第一章完结,每天都会更新一章;
后期会有负载均衡的详细课程