网站服务
想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务就是Web网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务.
Web网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的Web服务器会通过HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户.
目前能够提供Web网络服务的程序有IIS、Nginx和Apache等.其中,IIS(Internet Information Services,互联网信息服务)是Windows系统中默认的Web服务程序.
2004年10月4日,为俄罗斯知名门户站点而开发的Web服务程序Nginx横空出世.Nginx程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市场,但Nginx最被认可的还当是系统资源消耗低且并发能力强,因此得到了国内诸如新浪、网易、腾讯等门户站的青睐.
Web服务器和Web框架的关系
Web服务器(nginx):接收HTTP请求并返回数据.
Web框架(django,flask):开发web应用程序,处理接收到的数据.
NGINX
nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件,安装更为简单,方便,灵活.它是一个俄罗斯人lgor sysoev开发的,作者将源代码开源出来供全球使用.
nginx支持高并发,资源消耗少,在3万并发连接下开启10个nginx线程消耗的内存不到200M
nginx支持支持异步网络i/o事件模型epoll
nginx不但是一个优秀的web服务软件,还可以作为反向代理,负载均衡,以及缓存服务使用.
Tengine
Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验.它的最终目标是打造一个高效、稳定、安全、易用的Web平台.
开始安装
1.gcc安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++
2.PCRE pcre-devel安装
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库.nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库,pcre-devel是使用pcre开发的一个二次开发库,nginx也需要此库.
yum install -y pcre pcre-devel
3.zlib安装
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在Centos上安装zlib库.
yum install -y zlib zlib-devel
4.OpenSSL安装
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用.
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在Centos安装OpenSSL库.
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
5.下载源码包
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
6.解压缩源码
tar -zxvf nginx-1.12.0.tar.gz
7.切换源码目录
[root@localhost opt]# cd nginx-1.12.0
8.配置,编译安装
./configure --prefix=/opt/nginx12/
make && make install
9.进入nginx的工作目录
[root@localhost opt]# cd nginx12
10.启动nginx,进入sbin目录,找到nginx启动命令.
./nginx #启动
./nginx -s stop #关闭
./nginx -s reload #重新加载
11.安装完成后检测服务
[root@localhost sbin]# netstat -tunlp |grep 80
-bash: netstat: command not found
出现以上问题的解决方案:yum install net-tools
[root@localhost sbin]# netstat -tunlp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4011/nginx: master
12.nginx默认站点是Nginx目录下的html文件夹,这里可以从nginx.conf中查到
location / {
# 这里是默认的站点html文件夹,也就是 /opt/nginx12/html/文件夹下的内容
root html;
# 站点首页文件名是index.html
index index.html index.htm;
}