nginx网站服务

nginx网站服务:

nginx是一款高性能而且轻量级的web服务软件

提供静态页面服务。就是一个纯文本格式的文件,一般都是以.html或.htm格式为结尾的文件

特点:

稳定性一般(nginx的bug很多,更新迭代很快)

httpd 俗称阿帕奇 在国内用的比较少,国外主要是用阿帕奇

nginx是开源的(免费)

阿里就是基于nginx做的二次开发:tengine

对于系统的资源消耗非常低,它也是http协议(单台物理服务器可以支持并发量3w-5w台,在工作中一般设为2w个左右,保存服务器稳定),因此相对于阿帕奇更好

nginx的主要功能:

1.处理静态页面,可以直接提供静态页面的文件服务。html、图片、动画也可以,能够高效的处理并且响应静态页面的请求。(静态页面)

2.反向代理,可以通过反向代理实现负载均衡和高可用

3.处理动态请求,nginx一般是把动态请求转发到后端服务器,由专门处理动态请求的服务器进行处理。然后动态请求处理完之后,还是nginx来响应给客户端

4.支持加密的http协议,也就是https

5.支持虚拟主机

6.支持URL的重定向功能,也就是页面跳转

7.nginx自带缓存机制,可以缓存静态页面的内容,减轻后端服务器的压力

8.nginx自带日志记录,访问日志(哪些主机访问了本机的nginx服务),报错日志(1.访问失败的记录,2.配置文件错误3.nginx启动失败的记录)

9.可以支持模块扩展。可以加载不同的模块和自定义配置

10.低内存消耗:例如1w个keep-alive连接保持,只占3M不到的内存

11.支持热部署,也就是可以不停机更新配置文件与升级版本

nginx的工作中应用场景:

1.静态页面服务

2.转发动态请求

3.反向代理负载均衡

4.缓存服务

5.连接保持和会话保持

安装nginx的步骤

1.下载安装包,我们进行编译安装

ps:我是安装在opt目录下的

2.下载相关依赖关系

yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel

nginx网站服务_第1张图片

3.创建运行用户、组 (Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)

useradd -M -s /sbin/nologin nginx

4、解压

tar -xf nginx-1.22.0.tar.gz

nginx网站服务_第2张图片

5.进入刚刚解压的目录中

cd nginx-1.22.0/

nginx网站服务_第3张图片

6.将下面代码复制暂停到目录下回车。PS:请把中文删除,中文是解释对应命令的意思

./configure --prefix=/usr/local/nginx \ --user=nginx \

#指定用户名

--group=nginx \

#指定所在组

--with-http_ssl_module \

#支持http协议

--with-http_v2_module \

#支持http2.0协议

--with-http_realip_module \

#支持从客户端获取真实ip

--with-http_stub_status_module \

#支持访问nginx状态信息的方法

--with-http_gzip_static_module \

#支持对页面进行压缩的功能

--with-pcre \

#支持pcre库

--with-stream \

#可以支持stream模块,也就是可以支持四层代理

--with-stream_ssl_module \

#可以支持加密传输的四层代理

--with-stream_realip_module

#运行nginx从代理(proxy) 协议的头部获取客户端的真实ip地址

nginx网站服务_第4张图片

6.make && make install

7.cd /usr/local

nginx网站服务_第5张图片

8.chown -R nginx.nginx nginx/ #修改权限

cd nginx/

ll

nginx网站服务_第6张图片

conf:nginx的配置文件,所有的配置文件都在该目录中。nginx.conf

nginx网站服务_第7张图片

html: 保存的是nginx的web文件,也就是工作目录。也可以更改。50x的web文件是默认的报错展示页面

nginx网站服务_第8张图片

logs:日志文件。PS:位置可以改

sbin: nginx的二进制启动的脚本文件

nginx网站服务_第9张图片

9.在nginx目录下

ln -s /usr/local/nginx/sbin/nginx /usr/sbin #让系统识别nginx的操作命令

10.nginx -t #检测配置文件语法和配置项是否正确

nginx网站服务_第10张图片

11.vim /lib/systemd/system/nginx.service

12.将下面内容复制进去,然后保存退出

[Unit]

Description=nginx - high performance web server

Documentation=http://nginx.org/en/docs/

After=network-online.target remote-fs.target nss-lookup.target

Wants=network-online.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/run/nginx.pid

#注意文件位置,如果不对 启动不了

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

#注意启动文件位置

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s TERM $MAINPID

[Install]

WantedBy=multi-user.target

nginx网站服务_第11张图片

ps:名词解释

ExecReload=/bin/kill -s HUP $MAINPID

kill -s HUP $MAINPID

HUP:重新启动服务

ExecStop=/bin/kill -s TERM $MAINPID

kill -s TERM $MAINPID

TERM :关闭服务

13.mkdir run #创建一个run目录

14.cd conf/

15.编译 vim nginx.conf 文件

pid /usr/local/nginx/run/nginx.pid;

nginx网站服务_第12张图片

16.重启服务

systemctl daemon-reload

systemctl restart nginx

nginx网站服务_第13张图片

17.cd .. #进入nginx目录下

cd html/ #进入html目录下

nginx网站服务_第14张图片

18.vim index.html

编译文件随便写内容,这里的内容如果是中文会显示乱码,很正常,这是在另外的配置文件修改的

然后验证,前提防火墙和安全机制都关闭了

nginx网站服务_第15张图片

nginx网站服务_第16张图片

nginx网站服务_第17张图片

这边实际上已经安装完成并验证成功

nginx命令解释:

nginx -t:检测配置文件语法和配置项是否正确

nginx -v:显示nginx的版本

nginx -V:即显示版本又显示配置项

nginx网站服务_第18张图片

nginx -signal:向nginx的主程序发送信号(stop restart reload)

nginx除了编译安装还有yum安装

yum安装:编译安装和yum不要同时使用。也就是两个服务不要即yum安装又编译安装,系统默认识别的是yum安装

yum -y install epel-release #yum安装必须先安装这个

yum -y install nginx #然后才安装nginx

面试题:

nginx的配置文件:

nginx.conf配置文件当中的内容:

nginx网站服务_第19张图片

PS:上图events内容,默认是1024个如果想要改大需要配置下面的文件

nginx网站服务_第20张图片

PS:这是在文件的最底下添加内容

nginx网站服务_第21张图片

nginx网站服务_第22张图片

nginx网站服务_第23张图片

nginx网站服务_第24张图片

PS:之前安装实验乱码的情况,可以修改上图的字符集来完成

nginx网站服务_第25张图片

总结一下配置文件:

全局模块

events模块:配置连接数

http模块:代理地址,日志,虚拟主机等等都在http中

一个http模块中,可以有多个server块,server模块只能在http模块中。

location模块只能写在server模块当中,一个server模块可以有多个location(匹配工作目录)

如何更改默认工作路径

下面是root与alias的区别与实验:

root路径在默认html中实验:

nginx网站服务_第26张图片

在默认html目录下创建test目录与之对应的index.html。页面内容

nginx网站服务_第27张图片

在index.html文件中添加一下内容

可以在浏览器查看结果

下面是用使用root在opt目录下实验,也就是更改默认路径

nginx网站服务_第28张图片

创建要访问的页面内容

nginx网站服务_第29张图片

下面是用alias实验:

nginx网站服务_第30张图片

因为我们是访问同一个test页面内容,之前已经创建过了,这边就不需要再重新创建了,注意,访问的页面没有时,一定要创建,不然实验没有意义

总结:

root和alias:指定工作目录的区别 root是拼接 /opt/html/test/index.html

alias是精确指定:

/test URI

/opt/html/test

nginx网站服务_第31张图片

两者区别

root可以在server模块中,但是alias只能在location中

alias匹配的uri 是/必须要以/结尾,root不需要

实验题:

123访问test用root

456访问动画用户alias

nginx网站服务_第32张图片

实验题:

实现访问状态统计:

nginx网站服务_第33张图片

首先先进入配置文件

nginx网站服务_第34张图片

添加status

nginx网站服务_第35张图片

检查是否有错误,没有错误就重启服务

nginx网站服务_第36张图片

在浏览器访问

名词解释

Active connections: 1 #表示当前活动的连接数 三个数字:已经处理的连接数,成功tcp握手次数 已处理的请求数

server accepts handled requests 16 16 16 Reading: 0 Writing: 1 Waiting: 0 reading: 表示当前正在读取客户端请求的连接数。服务器正在从客户端读取数据。 writing: 表示服务器正在讲响应的数据发送给客户端 waiting: 有连接处于空闲状态。等待新的连接

实验题:

实现基于客户端访问控制:

模拟两台客户端。此时两台客户端都已经关闭防火墙和安全机制

先实验一下,两台客户端是否可以正常访问

nginx网站服务_第37张图片

nginx网站服务_第38张图片

这里可以看到访问没有问题

配置文件

nginx网站服务_第39张图片

实验结果

nginx网站服务_第40张图片

nginx网站服务_第41张图片

实验题:

如何使用域名的nginx:

配置文件

nginx网站服务_第42张图片

创建访问目录

nginx网站服务_第43张图片

创建访问的内容

nginx网站服务_第44张图片

配置hosts文件

nginx网站服务_第45张图片

实验结果:ps想要访问需要提前配置hosts文件,不然访问不了

nginx网站服务_第46张图片

nginx网站服务_第47张图片

衍生实验:

基于ip地址的虚拟主机

nginx网站服务_第48张图片

实验结果

基于端口

nginx网站服务_第49张图片

实验结果

实验题:

需要授权:

首先先安装工具

yum -y install httpd-tools

我这里已经安装过了

nginx网站服务_第50张图片

创建一个用户密码

nginx网站服务_第51张图片

配置权限

配置文件

nginx网站服务_第52张图片

重启配置文件

实验结果

nginx网站服务_第53张图片

nginx网站服务_第54张图片

总结:

核心nginx配置文件

全局:主要是用户和工作进程

events:连接数

http:虚拟主机和页面配置,代理

http模块当中可以有多个server多个虚拟主机,一个虚拟主机就是一个网站

server只能在http模块中,排除stream,它可以配置server

location只能在server模块中,一个server可以有多个location

location的作用:匹配URI

root:拼接

alias:精确

你可能感兴趣的:(云计算课程学习,nginx,运维)