<架构师必修课>-nginx_架构师对于nginx(1),详解系列文章

2.1 正向代理与反向代理

2.1.1 正向代理

在客户端配置代理服务器,通过代理服务器与实际服务器进行通讯

在这里插入图片描述

2.1.2 反向代理

客户端对代理是无感知的,客户端不需要做任何配置都可以访问,将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器是一个服务器,暴露的是代理服务器,隐藏的是真实服务器。

在这里插入图片描述

2.2 负载均衡

当单台服务器达到性能瓶颈的时候,需要增加多台服务器,负载均衡顾名思义就是把请求平均分发到不同的服务器。

在这里插入图片描述

2.3 动静分离

为了加快网站的解析速度,把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低单个服务器的压力

在这里插入图片描述

3 nginx常用命令

切换到/usr/sbin目录。可以使用nginx命令

zjf@ubuntu:~/Desktop$ whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
zjf@ubuntu:~/Desktop$ cd /usr/sbin/

查看版本号

zjf@ubuntu:/usr/sbin$ ./nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

停止nginx

zjf@ubuntu:/usr/sbin$ ./nginx -s stop

启动nginx

zjf@ubuntu:/usr/sbin$ ./nginx

重新加载配置文件

zjf@ubuntu:/usr/sbin$ ./nginx -s reload

如果权限不够,再指令前面加sudo。
这不是操作nginx的唯一方式,可以通过docker使用nginx,也可以通过systemctl 操作nginx服务

检查配置文件

root@ubuntu:/usr/sbin# nginx -tc /etc/nginx/nginx.conf
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

使用指定配置文件

nginx -c /etc/nginx/nginx.conf

使用指定配置文件重新启动

nginx -s reload -c /etc/nginx/nginx.conf

4 nginx配置文件

4.1 配置文件位置

nginx的配置文件再/etc/nginx目录下

zjf@ubuntu:~$ whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
zjf@ubuntu:~$ cd /etc/nginx
zjf@ubuntu:/etc/nginx$ ls
conf.d koi-win nginx.conf sites-enabled
fastcgi.conf mime.types proxy_params snippets
fastcgi_params modules-available scgi_params uwsgi_params
koi-utf modules-enabled sites-available win-utf

4.2 配置文件的组成

在这里插入图片描述

4.2.1 全局块

设置影响nginx服务器整体运行的配置指令,主要包括配置运行nginx服务器的用户(组)、允许生成的worker process数,进程PID存放路径、日志存放路径和类型以及配置文件的引入等。

user www-data;
worker_processes auto; # nginx并发处理的值,越大处理的并发越多
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

4.2.2 events块

events块涉及的指令主要影响nginx与用户的网络链接

events {
worker_connections 768; # 每个process允许的链接数

multi_accept on;

}

4.2.3 http块

这里是nginx配置最频繁的部分,代理,缓存和日志定义等绝大多数功能和第三方模块的配置都在这里,http块也包括http全局块、server块

4.2.3.1 http全局块

http {
include mime_type;
}

4.2.3.2 server块
4.2.3.2.1 全局server

sever {
listen 80;# 当前监听的端口是80
server_name localhost; # 主机名称
}

4.2.3.2.2 location

location / { # 当请求的路径出现斜杠出现下面的跳转,可以做路径中包含某个值,执行其他跳转
root html
index index.html index.htm
}

5 nginx反向代理配置实战

5.1 最简单的方向代理

浏览器访问192.168.153.128:81请求就会被重定向到百度首页

http{

http全局块-其他内容

server {
listen 81;
server_name 192.168.153.128;
location ~/* {
proxy_pass http://www.baidu.com;
}
}

http其他内容

}

5.2 不同url分发到不同服务器

请求中有淘宝发送到www.taobao.com
请求中有百度发送到www.baidu.com

server {
listen 81;
server_name 192.168.153.128;
location ~/baidu/* {
proxy_pass http://www.baidu.com;
}
location ~/taobao/* {
proxy_pass http://www.taobao.com;
}
}

6 nginx负载均衡配置实战

nginx负载均衡常用的四种策略,分别是轮询(默认策略)、权重、ip_hash,fair(响应时间方式)

做配置之前先准备两个服务,如果你是java开发,那么建议启动两个tomcat服务,本篇文件使用python的web服务,flask+gunicorn做为服务

首先准备两个flask程序

app1.py

from flask import Flask

app = Flask(name)

@app.route(‘/’)
def index():
return “Hello gunicorn web 1; open 5000 port”

第二个flask程序

app2.py

from flask import Flask

app = Flask(name)

@app.route(‘/’)
def index():
return “Hello gunicorn web 2; open 5001 port”

使用gunicorn 运行服务

gunicorn -w 2 -b 0.0.0.0:5000 -D app1:app
gunicorn -w 2 -b 0.0.0.0:5001 -D app2:app

通过浏览器访问ip:5000 和 ip:5001会看到定义的返回值

6.1 轮询

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

35)]
[外链图片转存中…(img-q5hnBo9F-1713089392735)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-RcCBkVq3-1713089392736)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值