2019-04-30 Nginx服务初步
Day44
作者:方
归档:课堂笔记
时间:2019/4/30
Nginx服务初步
1. 什么是Nginx
是一个开源的、支持高性能、高兵法的www服务和代理服务软件。
Nginx是目前最流行的Web服务软件!
现已被F5收购。
2. Nginx的三大功能:
1) 网页服务:自身是静态Web服务,还支持动态Web服务
2) 负载均衡、反向代理
3) 缓存服务器
3. Nginx特点
静态小文件高并发,占用资源少,软件本身小
4. Nginx的应用场景
1) 静态Web服务器,使用Nginx运行HTML、JS、CSS、小文件等静态数据,做静态服务器
2) 配合运行动态Web服务器
3) 做反向代理负载均衡,目前是常见的http的负载均衡
4) 做Web缓存服务器(把文件放入内存里)
5. 反向代理与负载均衡
什么是代理:海外代购、微商;代替别人做事
正向代理:代替,效率低。局域网电脑上网由代理服务器代替你的电脑去访问服务器。
反向代理:代替,效率低。互联网上的用户需要打开服务器上的网站时,需要请求代理服务器去访问内部的服务器,代替用户去访问内部服务器上的资源。(大并发的情况下是不行的)
负载均衡:是转发而不是代理,效率高。用户请求网站,负载均衡把请求发给服务器,处理完后服务器直接把结果返回给用户,不经过负载均衡。
6. 为什么Nginx总体性能比Apache高?
Nginx使用最新的epoll和queue一部网络I/O模型,而Apache则使用的是传统的select模型。
select和epoll的区别:打比方
select模型:比如:伙伴去宿舍找你,一个屋一个屋的找,效率低。
epoll模型:比如:伙伴去宿舍找你,先问宿管,看看在哪个屋,然后直奔那个屋,效率高。
select模型:比如:小孩撒尿,挨个问要不要撒,如果要,就拉出来带着去。
epoll模型:比如:小孩撒尿,统一告知如果要尿尿,你就站出来
7. 软件安装方式
1) rpm安装,简单、快、依赖多,解决依赖困哪繁琐
2) yum安装,简单、快,自动解决依赖,但不能选择软件版本和存放路径
3) 编译安装(源码编译),慢、复杂、需要GCC编译器,但可以自定义安装(版本和存放路径)
4) 将源码制作成rpm,然后放到yum仓库,实现yum自动安装。一次性慢,复杂,安装快,可以自定义安装
5)二进制安装!
8. Nginx安装
8.1yum安装
1)配置官方源
image.png
2)下载
image.png
3)开启,自启,检查 systemctl三连击
image.png
显示成功
image.png8.2编译安装:(和8.1二选一)
安装Nginx所需的pore:URL重写软件,即实现伪静态需要这个软件
1) 采用yum方式安装pcre:(带delve字符串的软件包是必须安装的)(依赖包)
yum install pcre pcre-devel -y
安装后检查安装结果:
2) 安装openssl-devel(带delve字符串的软件包是必须安装的)加密用的,必须安装,不然会报错。(依赖包)
yum install openssl-devel openssl -y
安装后检查安装结果
rpm -qa openssl-devel openssl
3) 开始安装Nginx
创建/server/tools目录固定存放安装的软件
mkdir -p /server/tools
进入这个目录
cd /server/tools/
下载软件包,进入官网下载这个[http://nginx.org/download/nginx-1.16.0.tar.gz*]
wget http://nginx.org/download/nginx-1.16.0.tar.gz
创建nginx用户,不创建家目录并不让登录
useradd nginx -s /sbin/nologin -M
解压
tar xf nginx-1.16.0.tar.gz
cd nginx-1.16.0
./configure --user=www --group=www --prefix=/application/nginx-1.16.0/ --with-http_stub_status_module --with-http_ssl_module --with-pcre
configure参数的作用
--prefix=PATH 路径
--user=USER 用户
--group=GROUP 组
--with-pcre 伪静态
--with-http_stub_status_module 状态
--with-http_ssl_module 加密 443
编译
make *
把软件拷贝到指定的位置
make install
创建软链接
ln -s /application/nginx-1.16.0/ /application/nginx
4) 启动nginx。到此完成
/application/nginx/sbin/nginx
检查端口:netstat -lntup|grep nginx
5) 注意:
①每一步结尾直接echo $?验证是否正确。返回0代表步骤正确
②验证最终的安装是否正确。
wget 10.0.0.8 curl 10.0.0.8
编译安装配置:
[root@web02 /application/nginx]# tree
.
├── conf
│ ├── fastcgi.conf #和动态服务的接口配置参数,配合php
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types #媒体类型
│ ├── mime.types.default
│ ├── nginx.conf #主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default #和动态服务的接口配置参数
│ ├── uwsgi_params
│ ├── uwsgi_params.default #和动态服务的接口配置参数,配合Python
│ └── win-utf
├── fastcgi_temp
├── html #默认站点目录。
│ ├── 50x.html
│ └── index.html #默认的首页,10.0.0.8不指定文件,默认加载index.html首页。
├── logs
│ ├── access.log #访问日志
│ ├── error.log #Nginx错误日志。
│ └── nginx.pid #进程号对应文件。
├── sbin
│ └── nginx #启动命令。
[root@web02/application/nginx/html]# vim index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
~