当前位置:首页 > 教程 > 正文内容

nginx日常运维(nginx详解与运维)

2023-04-22 19:30:06教程1

nginx详解与运维

提起运维工程师,大部分人想到的第一印象是:

将运维工程师比作网管很形象,然而他们所负责的企业网络,要比网吧里的复杂N倍,所要求的知识和技能也远非普通网管可比。根据工作经验、知识和技能掌握的程度,运维工程师也有菜鸟和大神之分。下面就来看看,运维工程师的四层境界。

一、菜鸟级

初级运维最常见的工作就是熟悉和维护服务器。在这个阶段,运维的大部分工作简单而机械,检查机房、搬运服务器、端茶递水.......稍微了解点 Linux 系统的计算机专科毕业生就可以做,没什么太大的技术含量。

因为技术含量低,薪资也不过3-5k,所以刚毕业的程序员往往有一个错觉:运维岗不如开发岗。他们会觉得自己只是一个网管,每天从事的都是毫无意义的工作,像一颗无关紧要的螺丝钉。

但其实,运维是一场真正的马拉松。在初级阶段,你只跑了1%,开发的同学已经跑了20%,你的提升空间远远超过他们。

二、入门级

菜鸟阶段之后是入门阶段,这个阶段的运维工程师已经有了扎实的计算机理论基础,实践方面也有了些许心得,解决普通故障已经不费什么力气了。

入门级的运维工程师薪资在6-15k,能力和平台是影响工资的两大因素,能力强、平台好的运维月薪上万不是什么问题。入门级的运维工程师在排错调优、备份、高可用集群和监控警报方面有不错的熟练度。

要想达到入门级别,运维要熟悉mysql、mongodb、redis、mq、elk、nginx、tomcat的安装部署及优化,还要熟悉shell、python脚本语言,能熟练进行脚本/工具开发。努力学习的话,不到一年即可掌握。

三、高手级

高手级的运维工程师月薪在20k-45k,有着三年以上的大规模系统运维经验, 对 Linux 操作系统的原理有着深刻的理解,能够熟练运用各种调试和监控工具,化故障于无形之中,往往是小公司的CTO或者大公司的项目负责人。

在日常工作中,高手级的运维工程师要负责系统的安全和审计、利用DevOps 自动化、搞虚拟化与云计算......总而言之,在高手级的运维工程师眼里,有技术,就是可以为所欲为。

四、大神级

这个阶段的运维已经是实打实的大神了,6年以上大型业务应用系统的架构设计和落地的实际能力、海量数据处理和架构能力及经验、精通最少一种主流编程语言......可以说,这个阶段的运维在互联网哪一行都能做得风生水起,年薪普遍在50W以上,一般只存在于华为、阿里、百度这种巨头公司中。

从事运维的你处在哪一层呢?留言分享你的看法吧!

nginx 详解

       Nginx是一款常用的高性能Web服务器,其配置文件主要由模块指令和上下文组成,可以通过配置文件实现反向代理、负载均衡、缓存等功能。下面是nginx配置的一些详解:

1.server:server指令用于配置虚拟主机,可以在一个Nginx服务器中配置多个虚拟主机,每个虚拟主机有自己的配置。

2.location:location指令用于配置URL的匹配规则,可以匹配URI、文件扩展名等,可以通过配置不同的location实现反向代理和缓存等功能。

3.upstream:upstream指令用于配置反向代理的后端服务器,可以配置多个服务器进行负载均衡,支持不同的负载均衡算法。

4.proxy_pass:proxy_pass指令用于配置反向代理的转发规则,可以将请求转发到指定的后端服务器。

5.cache:cache指令用于配置缓存规则,可以通过配置缓存来提高Web服务器的性能。

6.ssl:ssl指令用于配置SSL协议,可以实现HTTPS的安全通信。

       除了以上指令外,还有许多其他的Nginx指令,例如gzip、log_format、rewrite等,可以根据具体需求进行配置。总的来说,Nginx的配置相对简单,但具有很高的灵活性和可扩展性,可以根据不同的场景进行灵活配置。

nginx yum

直接安装一个nginx的yum源文件。

nginx运行原理

一、 nginx 简单使用说明:

1.登录官网 http

2.解压所下载文件到指定的盘符

3.启动服务器,步骤如下:

打开 dos 命令窗口,切换到 nginx 的目录下。

输入启动命令:start nginx

打开浏览器输入网址:http://localhost:80(80 端口可以省略)

二、nginx 运行原理:

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

nginx运行

nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx来进行内网mysql的访问。

实验环境

nginx1.12.1 : 192.168.1.19

mysql : 192.168.1.20:3306

1:编译或者升级nginx至版本1.9.0以上,编译过程中需带上--with-stream。

# ./configure --prefix=/opt/apps/nginx --with-stream

# make && make install

2:配置stream,定义代理192.168.1.20的3306端口映射为端口2333。

# vi /opt/apps/nginx/conf/nginx.conf

……

……

events {

use epoll;

worker_connections 65535;

}

#stream配置

stream {

server {

listen 2333;

proxy_connect_timeout 1s;

proxy_timeout 3s;

proxy_pass 192.168.1.20:3306;

}

}

http {

……

……

}

3:开启nginx,验证代理是否生效。

image.png

可以看到我们现在可以通过nginx代理的端口访问到内网的mysql服务了。这也直接避免了mysql直接暴露到公网,增加些许的安全。当然,利用stream也可以实现后端服务的负载均衡。

nginx应用与运维实战

这个问题已经有人问过了。

1、出于提高IP地址的利用率的目的,在生产环境中,我们通常不会让某一个应用独立占用80端口,因此需要通过nginx的虚拟主机技术进行复用。

2、一般应用的权限不会为root,因此只能占用1025-65535号端口,因此我们通常将node应用跑在3000端口(express等默认端口),再通过nginx进行反向代理。其实这些是linux相关的基础知识,你可以到linuxprobe.com上面系统的学习一下运维的知识。

nginx运行机制

Nginx 是一个高性能的 Web 服务器,能够同时处理大量的并发请求。它结合多进程机制和异步机制 ,异步机制使用的是异步非阻塞方式 。

Nginx 的多线程机制和异步非阻塞机制 。

1、多进程机制

服务器每当收到一个客户端时,就有 服务器主进程 ( master process )生成一个 子进程( worker process )出来和客户端建立连接进行交互,直到连接断开,该子进程就结束了。

使用进程的好处是各个进程之间相互独立,不需要加锁,减少了使用锁对性能造成的影响,同时降低了编程的复杂度和开发成本。

2、异步非阻塞机制

每个工作进程 使用 异步非阻塞方式 ,可以处理多个客户端请求 。

当某个 工作进程 接收到客户端的请求以后,调用 IO 进行处理,如果不能立即得到结果,就去 处理其他请求 (即为 非阻塞 );而 客户端 在此期间也 无需等待响应 ,可以去处理其他事情(即为 异步 )。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98792039.html