标签:naginx
Nginx是一款轻量级的Web服务器/反向代理服务器,相比于传统的Web服务器Apache,Nginx占用的内存和资源更少,配置更简单,同时因为Nginx是异步非阻塞型的(多个连接(万级别)可以对应一个进程),在高并发下,它能保持低资源低消耗高性能,能支持高达50,000个并发连接数的响应。
Nginx的一个强大特性是它提供负载均衡策略,Nginx的负载策略可以分为内置策略和扩展策略,内置策略就是默认编译到Nginx内核中如:加权轮询和ip hash ,weight;扩展策略就是需要在编译内核时添加的策略如:fair,通用hash,consistent hash等。
Nginx作为负载均衡使用,因为是直接工作在网络的7层——应用层上,所以它的正则规则更为的强大和灵活,同时它对网络稳定性依赖性不像Lvs那么高,理论上只要能ping的通就能够进行负载功能。而且Nginx的安装和配置也比较简单,它基本上能把错误以日志的形式显示出来,这一点不像Lvs那样配置和检测都比较麻烦。
Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测。比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,Nginx会把上传切到另一台服务器重新处理。
此外Nginx作为Web的反向代理缓存也越来越成熟了,速度比传统的Squid服务器更加快速,同时Nginx也可作为静态网页和图片服务器,这方面的性能也无对手。还有Nginx社区非常活跃,第三方模块也很多。
解压nginx源码包
tar zxf nginx-1.9.14.tar.gz cd nginx-1.9.14
解决依赖性:
yum install pcre-devel openssl-devel -y
编译:指定源码包和加入ssl加密模块和监控模块
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module make && make install
添加nginx用户
useradd -s /sbin/nologin nginx usermod -d /usr/local/lnmp/nginx/ nginx
修改.bash_profile 文件改变nginx的PATH变量的值
vim ~/.bash_profile PATH=$PATH:$HOME/bin:/usr/local/lnmp/nginx/sbin source ~/.bash_profile
更改nginx配置文件
vim /usr/local/lnmp/nginx/conf/nginx.conf user nginx; worker_processes 4; #要开启的工作进程数, events { use epoll; #设定事件处理机制 worker_connections 4096; #设定并发数,数值越大则并发数越高 } nginx -t #监测配置文件正确与否
配置正常就可以输入nginx命令来开启nginx了
开启nginx之后就可以用web访问了它的端口和Apache一样也是80
添加ssl加密证书:
vim /usr/local/lnmp/nginx/conf/nginx.conf server { listen 443 ssl; server_name server2.example.com; ssl_certificate cert.pem; ssl_certificate_key cert.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
生成自己的证书:
cd /etc/pki/tls/certs make cert.pem cp cert.pem /usr/local/lnmp/nginx/conf/ nginx -t nginx -s reload
制作证书的过程:
可以登录网站测试一下了:
添加虚拟主机:
vim /usr/local/lnmp/nginx/conf/nginx.conf
在http{}之间添加
server { listen 80; server_name www.westos.com; #虚拟主机的域名访问时要有解析 location / { root /westos; #虚拟主机的Web目录 index index.html; } } server { listen 80; server_name www.linux.com; location / { root /linux; index index.html; } }
nginx -t
nginx -s reload
可以通过访问虚拟主机的域名来浏览虚拟主机的网页了:
nginx的负载均衡:
vim /usr/local/lnmp/nginx/conf/nginx.conf
在http{}之间添加
server { listen 80; server_name www.example.com; location / { proxy_pass http://example; #设置转发路径当访问www.example.com时将访问到后端另外两台服务器 } } upstream example { #实现负载均衡默认为轮询 server 172.25.9.3:80; server 172.25.9.4:80; }
通过访问www.example.com可以访问到后端两台web服务器的网页了:
标签:naginx
原文地址:http://bantiaomichong.blog.51cto.com/11702501/1792361