深入浅出Nginx之一【简介与环境搭建】

【Nginx简介】

Nginx(发音同enginex),是来自于俄罗斯的高性能web服务器和反向代理服务器。在国内有新浪、网易、豆瓣、迅雷等多家网站使用。尴尬

负载均衡(loadbalance):使用Nginx作为代理服务器,接收用户请求,并将其“均匀地转发”给多台内部web服务器,不会出现负载集中在某台服务器的现象。

反向代理(reverseproxy):标准的代理是用户使用代理软件访问互联网上的多台web服务器,而反向代理指的是多个用户使用代理服务器访问多台内部web服务器的模式。

使用Nginx的优点:

支持高并发访问:在生产环境下支持高达5万以上的并发连接数。大笑

内存消耗少:在5万并发连接环境下,开启10个worker进程,仅仅消耗150M内存。

容易配置:配置文件便于学习、阅读。

成本低廉:Nginx是免费的开源软件,无须付费。

支持rewrite重写规则:Nginx使用pcre进行正则表达式匹配,根据请求域名、url的不同,将http请求分发给不同的后端服务器。

内建健康检查功能:Nginx能够检测某台后端服务器是否宕机,不影响用户访问。

节省带宽:可以对静态资源进行gzip高效压缩,而通常浏览器都具有gzip解压缩功能。

性能稳定:使用Nginx作为反向代理服务器,有效避免了网络攻击对后端服务器的影响,提高了安全性。

【安装Nginx】

一.安装依赖包:哭

1.安装pcre:对正则表达式的支持。

tar-zxvfpcre-8.33.tar.gz

Shell代码收藏代码

cdpcre-8.33

./configure--prefix=/usr/local/pcre

make&&makeinstall

2.安装zlib:对gzip压缩的支持。

Shell代码收藏代码

tar-zxvfzlib-1.2.8.tar.gz

cdzlib-1.2.8

./configure--prefix=/usr/local/zlib

make&&makeinstall

3.安装openssl:对ssl协议的支持。

Shell代码收藏代码

tar-zxvfopenssl-1.0.0.tar.gz

cdopenssl-1.0.0

./config--prefix=/usr/local/openssl

make&&makeinstall

二.安装Nginx:酷

1.创建日志目录:

Shell代码收藏代码

mkdir-p/opt/nginx/logs

2.解压、配置:

Shell代码收藏代码

tar-zxvfnginx-1.6.0.tar.gz

cdnginx-1.6.0

./configure--prefix=/usr/local/nginx\

--error-log-path=/opt/nginx/logs/error.log\

--http-log-path=/opt/nginx/logs/access.log\

--with-pcre=/software/pcre-8.33\

--with-zlib=/software/zlib-1.2.8\

--with-http_ssl_module\

--with-openssl=/software/openssl-1.0.0\

--with-http_stub_status_module\

--with-http_realip_module\

--with-http_gzip_static_module\

--without-http_fastcgi_module\

--without-http_memcached_module\

--without-http_map_module\

--without-http_geo_module\

--without-http_autoindex_module\

--with-poll_module

说明:

1.使用\:表示多个物理行同属一个逻辑行.

2.日志文件:error.log存放Nginx的错误日志,access.log存放用户访问日志.

3.依赖关系:pcre、zlib、openssl需要设置为源码位置,而不是安装位置.

3.编译、安装:

Shell代码收藏代码

make&&makeinstall

【最小配置】吐舌头

1.修改Nginx启动端口号:修改监听端口号为8080,因为只有root账号能够使用0-1024之间的端口号.

Shell代码收藏代码

vi/usr/local/nginx/conf/nginx.conf

listen8080;

2.防火墙设置:开放8080端口

Shell代码收藏代码

su-root

vi/etc/sysconfig/iptables

追加如下内容:

Shell代码收藏代码

-AINPUT-mstate--stateNEW-mtcp-ptcp--dport8080-jACCEPT

重启网卡:

Shell代码收藏代码

serviceiptablesrestart

【启动、关闭】惊讶

1.启动nginx:并指定配置文件,参数-c为configure

Shell代码收藏代码

/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf

2.关闭nginx:参数-s为signal

Shell代码收藏代码

#等待worker进程处理完用户的当前请求,再进行关闭

/usr/local/nginx/sbin/nginx-squit

#快速关闭

/usr/local/nginx/sbin/nginx-sstop

3.使用kill命令关闭:关闭主进程(masterprocess),从进程(workerprocess)随之消亡.

Shell代码收藏代码

ps-ef|grepnginx

kill21531