构建Nginx服务器之一 安装及虚拟主机配置

一、Nginx简介

    Nginx("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex、Mail.Ru、VKontakte,以及Rambler。据Netcraft统计,在2012年8月份,世界上最繁忙的网站中有11.48%使用Nginx作为其服务器或者代理服务器。目前互联网主流公司360、百度、新浪、腾讯、阿里等,目前中国互联网企业70%以上公司都在使用nginx作为自己的web服务器。

Nginx特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。(以上简介摘自网络)

Nginx相对于Apache优点:

1)  高并发响应性能非常好,官方Nginx处理静态文件并发5w/s

2)  反向代理性能非常强。(可用于负载均衡)

3)  内存和cpu占用率低。(为Apache的1/5-1/10)

4)  对后端服务有健康检查功能。

5)  支持PHP cgi方式和fastcgi方式。

6)  配置代码简洁且容易上手。


二、Nginx的工作原理

Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

Nginx的模块从结构上分为核心模块、基础模块和第三方模块:

核心模块:HTTP模块、EVENT模块和MAIL模块

基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,

第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTPAccess Key模块。

Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll是linux内核2.6以后才出现的。Nginx采用epoll模型,异步非阻塞,而apache采用的是select模型:

Select特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。

epoll的特点:epoll对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高。

三、Nginx的安装

1、安装环境依赖包

[[email protected] ~]# yum -y install pcre pcre-devel gcc openssl-devel

2、下载Nginx并安装

[[email protected]nx ~]# wget http://nginx.org/download/nginx-1.6.3.tar.gz
[[email protected] ~]# tar -zxf nginx-1.6.3.tar.gz
[[email protected] ~]# cd nginx-1.6.3
[[email protected] nginx-1.6.3]# ./configure--prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[[email protected] ~]#make && make  install
[[email protected] nginx-1.6.3]#/usr/local/nginx/sbin/nginx   ##启动Nginx
[[email protected] nginx-1.6.3]# ps -ef | grepnginx
root     4432     1  0 22:12 ?        00:00:00 nginx: master process/usr/local/nginx/sbin/nginx
nobody   4433  4432  0 22:12 ?        00:00:00 nginx: worker process     
root     4437  2037  0 22:12 pts/2    00:00:00 grep nginx
[[email protected] nginx-1.6.3]#

Nginx安装成功!

四、Nginx虚拟主机的配置

[[email protected] conf]# vim/usr/local/nginx/conf/nginx.conf

在http下加入一行

include vhosts.conf;

在/usr/local/nginx/conf下新建vhosts.conf并添加以下内容。

[[email protected] conf]# cat vhosts.conf
server {
   listen       80;
   server_name  www.a.com;
 
   location / {
       root   /usr/local/nginx/html/a;
       index  index.html index.htm;
    }
}
 
server {
   listen       80;
   server_name  www.b.com;
 
   location / {
       root   /usr/local/nginx/html/b;
       index  index.html index.htm;
    }
}
 
server {
   listen       80;
   server_name  www.c.com;
 
   location / {
       root   /usr/local/nginx/html/c;
       index  index.html index.htm;
    }
}
[[email protected] ~]# cd /usr/local/nginx/html/
[[email protected] html]# mkdir {a,b,c}
[[email protected] html]# echo aaaaaa  > a/index.html
[[email protected] html]# echo bbbbbb >b/index.html
[[email protected] html]# echo cccccc >c/index.html
[[email protected] conf]#/usr/local/nginx/sbin/nginx -t
nginx: the configuration file/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file/usr/local/nginx/conf/nginx.conf test is successful
[[email protected] conf]#
[[email protected] conf]#/usr/local/nginx/sbin/nginx -s reload
[[email protected] conf]#

在客户端配置hosts(C:\Windows\System32\drivers\etc\hosts)

在hosts中加入一行

192.168.1.2 www.a.com www.b.com www.c.com

虚拟主机配置完成!

上边的虚拟主机是最最简单的配置,每个虚拟主机里边都可以定义或加载很多东西,将在后续章节中介绍!

时间: 2024-10-25 14:21:18

构建Nginx服务器之一 安装及虚拟主机配置的相关文章

Nginx 反向代理 负载均衡 虚拟主机配置

通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常用配置的说明.即学即用,你还在等什么?一睹为快先了解Nginx的三大功能Nginx 可以作为一台http服务器.可以做网站静态服务器,比如图片服务器,高效,减轻服务器压力.同时它也支持https服务.Nginx 可以配置多台虚拟主机.可以实现在一台服务器虚拟出多个网站效果,省钱.Nginx 最重要的是反向代理,负载均衡.在服务器集群中,Ngin

【转载】【nginx运维基础(2)】Nginx的配置文件说明及虚拟主机配置示例

转自 :http://www.cnblogs.com/nixi8/p/4869760.html 配置文件说明 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为当前主机的CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log ar/loginx/error.log info; #进程文件 pid /usr/loc

wampserver2.5下载、安装、虚拟主机配置详解

1,下载wampserver2.5 wampserver2.5 64位下载 wampserver2.5 32位下载 2,安装wampserver2.5 一直点击next就可以安装成功了,安装后电脑右下角会出现如下图标 红色框内显示绿色代表安装完成并成功启动了,默认是英文的现在我们切换为中文的=>右键点击绿色图标=>Language=>chinese. 3,wampserver虚拟主机配置 (这是我的安装目录)打开E:\wamp\bin\apache\apache2.4.9\conf\ht

nginx安装+虚拟主机配置

安装 (1)在线安装 $sudo apt-get install nginx Nginx的版本是1.2.1 ubuntu安装Nginx之后的文件结构大致为: 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下 启动程序文件在/usr/sbin/nginx 日志放在了/var/log/nginx中,分别是access.log和error.log 并已经在/etc/init.d/下创建了启动脚本nginx 默认的虚拟主机的目录

Centos7   Nginx 服务器的安装配置

一. Nginx 简介 Nginx 是由俄罗斯软件工程师 Igor Sysoev 开发的一个高性能的 HTTP 和反向代理服务器,具备 IMAP/POP3 和 SMTP 服务器功能. 作为 Web 服务器:相比较与 Apache, Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤为受到虚拟主机提供商的欢迎,能够支持高达 50000 个并发的连接数的响应. 作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二)

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二) 一.虚拟主机别名介绍 虚拟主机别名就是为虚拟主机设置除了主域名以外的另一个或多个域名名字,这样就能实现用户访问的多个域名对应于同一个虚拟主机网站的功能.在生产环境中,以www.afeilinux.com域名的虚拟主机为例,为其增加一个别名afeilinux.com时,在该域名出现的网站内容和访问www.afeilinux.com得到的结果是一样的. 二.实施方法 第一种方法:Nginx虚拟主机的别名配置 更改wtf.conf配置文件

Nginx:虚拟主机配置

继续我的Nginx学习之旅,今天谈谈虚拟主机的配置.那何为虚拟主机呢?虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台"虚拟"的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Internet服务器功能,同一台主机上的虚拟主机之间是完全独立的.利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程,虚拟主机提供了在同一台服务器,同一组Nginx进程上运行多个网站的功能.跟Apache一样,Ng

Nginx 网站服务——虚拟主机配置

第1章 Nginx 网站服务 1.1 web网站服务介绍: 1.1.1 提供静态服务的软件 Apache:这是中小型Web服务的主流,Web服务器中的老大哥. Nginx:大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大. Nginx的分支Tengine(http://tengine.taobao.org/)目前也在飞速发展. Lighttpd:这是一个不温不火的优秀Web软件,社区不活跃,静态解析效率很高.在Nginx流行前,它是大并发静态业务的首选,国内百度贴吧.豆瓣等众多网

Nginx中虚拟主机配置

一.Nginx中虚拟主机配置 1.基于域名的虚拟主机配置 1.修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS) linux : vim /etc/hosts 格式: ip地址 域名 eg: 192.168.3.172 www.gerry.com 2.在nginx.conf文件中配置server段 server {   listen 80;   server_name www.gerry.com; # 域名区分       location