百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

一文详解Nginx服务器配置,反向代理和负载均衡

off999 2025-01-16 20:29 10 浏览 0 评论

什么是Nginx?

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发的高性能的Web反向代理服务器,也是一个 IMAP/POP3/SMTP代理服务器。

由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。

Nginx安装

Ubuntu20.04为例:

sudo apt update
sudo apt install nginx

安装完成,检查版本号,如果版本号正确显示,则安装成功:

nginx -v

Nginx基础命令和配置

基础命令:

sudo service nginx status
sudo service nginx stop
sudo service nginx start
sudo service nginx restart
sudo nginx -t             检查默认配置文件
sudo nginx -s reload      重新载入配置文件

Nginx日志目录:/var/log/nginx/

Nginx工作目录:/etc/nginx

Nginx全局配置文件:nginx.conf

我们在conf.d目录下,新建.conf文件,写入自己的nginx配置。

查看进程号:

一个进程允许处理的最大连接数:worker_connections 768;

返回静态页面

先在全局配置文件http段中加入server段:

然后执行:sudo nginx -t 测试是否成功。如果成功,执行sudo nginx -s reload重新载入配置文件。

默认80端口,访问成功:

注意:非root用户修改全局配置文件先要执行chmod增添写入权限。

然而,一般我们不会直接修改默认配置文件,在conf.d目录下新建配置文件:

server {
    listen 192.168.92.134:8001;
    location / {
        root /etc/nginx/conf.d/html;
        index index.html;
    }
}

return 302 重定向到其他网站:

使用302重定向,访问本地网址,跳转后,地址栏显示的还是跳转后的地址。比如,我更换了网站域名,但是希望老用户可以继续找得到新网站,所以做个跳转功能。

root 表示 location 匹配内容的相对路径,alias 表示 一个绝对路径,而且必须以"/"结尾:

反向代理

什么是代理服务器?举个例子,找工作直接和老板谈薪资待遇,这就是没有代理,但是大公司老板不会直接面试招聘,就通过HR进行代理,然后老板只负责盖章敲定。

真实客户端直接访问真实服务器就是没有代理。网络中,代理又分为正向代理和反向代理。

正向代理:比如我在大陆服务器要访问Google,但是无法直接访问,然而我可以访问香港服务器,香港服务器可以访问Google,那我就用香港服务器做代理,实现在大陆直接访问外网。

正向代理是隐藏客户端,反向代理是隐藏服务器。比如,张艺谋的《影》,讲的是关于替身的故事,替身即使被杀死,也不会影响真身。所以,真实服务器作为大Boss,让小弟服务器做代理,黑客只能共计小弟代理服务器,不会影响真实服务器。

如上图,大家只可以访问代理服务器,代理服务器再向真实服务器请求数据,同时真实服务器可以是多个,这就叫做负载均衡。

除了隐藏真实服务器,还有一个现实的需求,那就是一个服务器要开启多个服务,但是,一个服务器只有一个80端口,如何让多个服务共用80端口?

可以先给不同服务分配不同端口,比如8001,8002,但是都监听80端口。服务器名字用不同的域名区分,访问不同的域名,默认都是80端口,然而实际上访问的是真正的端口。

负载均衡

当访问量急剧增大,只有一台服务器难以应答,可以考虑使用多个服务器分散压力。比如,一个请求到达,按照服务器1,2,3的顺序依次应答,这样就可以减轻单个服务器的压力。

正常每个服务器的内容都是一样的,但是为了测试方便,使用不同的网页应答,这种默认的负载均衡方式就是面对请求,依次应答的,这种形式也叫做轮询算法。

然而,不同服务器可能性能不同,一般主服务器性能最佳,访问时应答权重更高一些,能力越大责任越大,这就可以使用加权轮询算法,给不同服务器分配应答权重。

ssl证书

SSL证书是一种数字证书,主要是给予网站HTTPS安全协议加密传输与信任的功能。ssl证书分为免费版和付费版,一般网站长期使用还是付费证书比较稳定,到期续费,平时使用可以搜索一下免费证书以供练习。

然后访问https就可以啦:

相关推荐

相关推荐

30s带你使用Python打包exe文件,并修改其图标

在Python中,我们可以使用PyInstaller或cx_Freeze等工具将Python脚本打包成可执行文件(.exe),并且能够修改生成的.exe文件的图标。使用PyInstaller...

Python一键打包为windows的exe文件,无需安装python环境即可执行

一、为什么要将Python打包为exe?在实际应用中,我们希望Python程序能在没有安装Python环境的电脑上直接运行。将Python代码打包为exe可执行文件,不仅能解决环境依赖问题,还便于程...

py2exe实现python文件打包为.exe可执行程序(上篇)

今天分享的内容为:python程序实现发送、读取邮件来控制电脑的关机与重启(作为py2exe打包成.exe可执行程序的基础文件)一、说明:本文介绍的是使用新浪邮箱作为例子进行讲解,代码实现如下:#c...

如何将python程序文件打包生成一个可执行文件(exe文件)

在开发Python程序后,有时我们希望将其打包成一个可执行的exe文件,方便在没有Python环境的计算机上运行。下面将详细介绍使用常见工具实现这一目标的方法。安装PyInstaller...

Python程序打包为EXE的全面指南:从入门到精通

引言在Python开发中,将程序打包成可执行文件(EXE)是分发应用程序的重要环节。通过打包,我们可以创建独立的可执行文件,让没有安装Python环境的用户也能运行我们的程序。本篇文章将详细介绍如何使...

10个你没有充分利用的令人惊叹的 Python 特性

Python的简单性和多功能性使其成为全球开发人员的最爱。每天有超过1000万开发者使用Python进行从网络开发、机器学习到网络脚本等各种开发,Python的功能非常强大。然而,我们中的...

编程语言可以用来做什么

1.web前端你每天浏览的网页,所看到的页面特效,均是由web前端工程师来实现的2.Java大型购物网站有关通信及网络企业大型企业级应用管理系统大型网游后台数据3.C++嵌入式三维游戏领域人工智能领域...

用Python进行机器学习(16)-内容总结

对于用Python进行机器学习的内容,到这里就要做一个阶段性总结啦,后续再写的文章就是关于深度学习的了,算是对该部分内容的进阶版。对于机器学习,我们主要介绍了五个方面的内容:第一个就是分类算法,主要包...

普通人如何利用python做自媒体赚收益

普通人利用Python做自媒体赚收益,最简单的方式是下载某些网站的视频,并利用剪影编辑视频,最后导出发布,每天可以制作个10几条,并设置好定时发布,每天如此坚持下去,一定会有所收获的...

AI能写什么做什么?这些技能已经颠覆你的认知!

在ChatGPT、文心一言等AI工具爆火的今天,人工智能早已不再是科幻电影里的概念,而是实实在在地渗透进我们的生活。**AI到底能写什么?能做什么?它的边界在哪里?**让我们一探究竟!---**1....

Python 3.14 新特性盘点,更新了些什么?

Python3.14.0稳定版将于2025年10月正式发布,目前已进入beta测试阶段。这意味着在往后的几个月里,3.14的新功能已冻结,不再合入新功能(除了修复问题和完善文档)。3...

每天一个Python库:sys模块的5个高频用法(建议收藏)

很多人学Python,一直卡在“写不了实用脚本”。其实,会用标准库,效率直接翻倍。今天分享的是:sys模块。这个模块虽然基础,但非常实用,下面是我亲测常用的5个功能1.获取命令行参数(自动化脚...

Python除了做爬虫抓数据还能做什么?其实还能监视和衡量网站性能

  借助这份对初学者友好的指南,您可以构建自己的自定义Python脚本来自动测量网站的关键速度和性能指标。  在过去的一个月中,Google宣布了许多通过关键速度和性能指标来衡量用户体验的方法。  巧...

python究竟可以用来做些什么

这里就不撰述python的一些像什么“高级语言”之类的比较常规的介绍了,还是老样子,说说一些比较常用的东西吧。python是什么python,一款可编程的开源软件,很多第三方库、框架也是开源的,比如强...

Python 实现 dubbo 协议接口自动化测试

前言python语言也可以实现对dubbo协议的接口进行调用与测试,可以使用python+hessian结合的方式,也可以使用python+telnet结合的方式模拟命令行的模式来实现对...

取消回复欢迎 发表评论: