Nginx专为性能优化而开发,其最大的优点就是它的稳定性和低系统资源消耗,以及对http并发连接的高处理能力,单台物理服务器可支持20000~50000个并发请求,正是如此,大量提供社交网络、新闻资讯、电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供web服务,目前中国大陆使用Nginx网站用户有:新浪、网易、腾讯,另外知名的微网志Plurk也使用Nginx。
Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性:
高并发连接:官方测试能支撑5万并发连接,在实际生产环境中跑到2,~3W并发连接。 内存消耗少:在3W并发连接下,开启的10个Nginx进程才消耗150M内存(15M*10=150M) 配置文件非常简单:风格跟程序一样通俗易懂。 成本低廉:Nginx作为开源软件,可以免费使用,而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币。 支持rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分发到不同的后端服务器群组。 内置的健康检查功能:如果Nginx Proxy后端的后台web服务器宕机了,不会影响前端访问。 节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头。 稳定性高:用于反向代理,宕机的概率微乎其微。
有关Nginx理论知识在这就不多说了,下面开始干正事,搭建Nginx网站服务器:
1、centos 7服务器一台;
2、centos 7系统盘一个;
3、需要用到的软件包,这里已经准备好了一个,提取链接:
提取连接
一、开始搭建Nginx网站:
1、挂载系统光盘,初始化yum源
[[email protected] ~]# mount /dev/cdrom /mnt/ #挂载系统光盘 [[email protected] ~]# mkdir /etc/yum.repos.d/bak #创建系统yum备份目录 [[email protected] ~]# mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/bak/ #将系统自带的yum配置文件以Centos-开头的所有文件复制到bak目录中 [[email protected] ~]# vim /etc/yum.repos.d/local.repo #创建yum配置文件 [local] name=centos baseurl=file:///mnt enabeld=1 gpgcheck=0
2、安装Nginx
[[email protected] ~]# yum -y install pcre pcre-devel zlib-devel #安装依赖程序 [[email protected] ~]# umount /mnt/ #卸载系统光盘,切换软件包光盘 [[email protected] ~]# mount /dev/cdrom /mnt/ #挂载软件包光盘 [[email protected] ~]# tar zxvf /mnt/Nginx-1.6.0.tar.gz -C /usr/src/ #将mnt目录中程序解压缩到/src [[email protected] ~]# useradd -M -s /sbin/nologin Nginx # 创建管理的Nginx的用户 [[email protected] ~]# cd /usr/src/Nginx-1.6.0/ #编译安装Nginx [[email protected] Nginx-1.6.0]# ./configure --prefix=/usr/local/Nginx --user=Nginx --group=Nginx --with-http_stub_status_module [[email protected] Nginx-1.6.0]# make && make install #编译安装Nginx [[email protected] Nginx-1.6.0]# ln -s /usr/local/Nginx/sbin/Nginx* /usr/local/sbin/ #优化执行命令 [[email protected] ~]# echo "www.benet.com" > /usr/local/Nginx/html/index.html #修改新页面覆盖旧页面 [[email protected] ~]# vim /usr/local/Nginx/conf/Nginx.conf #设置Nginx最大并发 12 events { 13 worker_connections 4096; 14 }
二、配置Nginx虚拟主机
[[email protected] ~]# vim /usr/local/Nginx/conf/Nginx.conf #Nginx配置虚拟主机www.benet.com 35 server { #Server表示虚拟主机 36 listen 80; #虚拟主机监听端口 37 server_name www.benet.com; #虚拟主机域名 38 charset utf-8; #支持字符编码 39 access_log logs/www.benet.com.access.log; #成功日志位置/usr/local/Nginx/logs/ 40 error_log logs/www.benet.com.error.log; #错误日志/usr/local/Nginx/logs/ 41 location / { 42 root /var/www/benetcom/; #网站根目录(默认/usr/local/Nginx/html/) 43 index index.html index.htm; #网站主页index.html或者index.htm 44 } 45 } [[email protected] ~]# mkdir -p /var/www/benetcom #创建www.benet.com虚拟主机网站根目录 [[email protected] ~]# echo "www.benet.com" > /var/www/benetcom/index.html #创建www.benet.com虚拟主机主页 [[email protected] ~]# vim /usr/local/Nginx/conf/Nginx.conf #配置www.accp.com虚拟主机 47 server { #Server表示虚拟主机 48 listen 80; #虚拟主机监听端口 49 server_name www.accp.com; #虚拟主机域名 50 charset utf-8; #支持字符编码 51 access_log logs/www.accp.com.access.log; #成功日志位置/usr/local/Nginx/logs/ 52 error_log logs/www.accp.com.error.log; #错误日志/usr/local/Nginx/logs/ 53 location / { 54 root /var/www/accpcom/; #网站根目录(默认/usr/local/Nginx/html/) 55 index index.html index.htm; #网站主页index.html或者index.htm 56 } 57 } [[email protected] ~]# mkdir -p /var/www/accpcom #创建www.accp.com虚拟主机网站根目录 [[email protected] ~]# echo "www.accp.com" > /var/www/accpcom/index.html #设置www.accp.com虚拟主机网站主页
三、启动Nginx
[[email protected] ~]# Nginx #启动Nginx [[email protected] ~]# killall -s QUIT Nginx #停止Nginx [[email protected] ~]# killall -s HUP Nginx #重新启动Nginx
四、客户端验证Nginx,确保客户端和centos 7服务器网络是互通的,否则白扯,(在这里没有搭建DNS需要手动添加host文件,后续更新LNMP及LAMP再详细配置)
1、添加host文件
2、客户端访问