超全Nginx反向代理服务器原理+实战篇

这篇具有很好参考价值的文章主要介绍了超全Nginx反向代理服务器原理+实战篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Nginx简介和安装部署

1.1.什么是Nginx
  • 高性能的[HTTP]和反向代理的web服务器,用c语言编写,高性能支持单机千万级连接,强大的第三方库支持,负载均衡、静态文件服务器等。
1.2.Nginx的用途
  • 搭建前端静态资源服务器、文件服务器
  • 负载均衡Upstream配置实战、后端节点高可用性探测、全局异常兜底数据配置
  • Nginx封禁恶意IP、配置跨域、location和rewrite实战
  • Websocket配置、后端业务数据缓存前置、静态资源压缩
  • 阿里云ESC部署配置HTTPS证书
  • Nginx整合Openresty开发内网访问限制、文件资源下载限速实现原理
  • LVS+KeepAlived高可用配置
1.3.正向代理服务器
  • 客户端和目标服务器之间的服务器,客户端想代理发送一个请求指定目标服务器,然后代理向目标服务器请求并获得内容,并返回给客户端,平时说的代理服务器一般是正向代理服务器。
  • 核心:用户知道自己要访问的目标服务器
  • 场景:跳板机,访问原来无妨访问的网站

超全Nginx反向代理服务器原理+实战篇

1.4.反向代理服务器
  • 客户端和目标服务器之间的服务器,客户端向代理发送一个请求,然后代理向目标服务器请求并获得内容,并返回给客户端。反向代理隐藏了真是的服务器。
  • 核心:客户端不知道要访问的目标服务器是哪台服务器,代理会根据一定的策略选择一个真是的服务器进行请求。
  • 场景:域名映射

超全Nginx反向代理服务器原理+实战篇

1.5.nginx安装部署
  • 安装依赖
    • yum -y install gcc zlib zlib-devel pcre-devel opensslopenssl-devel
  • 解压nginx.tar.gz压缩包
    • tar -xvf nginx-1.18.0.tar.gz
  • 执行命令
    • ./configure --prefix=/usr/local/nginx && make && make install
  • 阿里云开放网络安全组或者虚拟机开发80端口firewall-cmd --permanent --add-port=80/tcp
  • 启动nginx:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

超全Nginx反向代理服务器原理+实战篇

1.6.线上访问服务器应用流程解析
  • 一个http请求基本流程
    • 客户端通过发起域名资源请求->DNS解析获取IP->寻找服务器获取资源
  • 域名和IP的关系,DNS作用
    • DNS:Domain Name Server域名服务器,域名虽然便于人们记忆,但网络中的计算机只能通过IP相互通信,他们之间的转换共做成为域名解析,域名解析需要由专门的与专门解析服务器完成,DNS就是进行域名解析的服务器。
  • 什么是a记录和cname
    • a记录
      • 用户可以在此设置域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器(lixiang.com->192.168.10.103)
    • cname
      • 别名指向,可以为一个主机设置别名。比如设置lixiang123.com,用来指向lixiang.com那么以后就可以用lixiang123.com代替lixiang.com来访问,相当于多了一条通道。
1.7.本地虚拟机配置宿主机域名映射
  • C:\Windows\System32\drivers\etc
  • 修改hosts文件

2.Nginx核心基础知识

2.1.Nginx目录结构

(1)源码安装指定安装路径

  • /usr/local/nginx

(2)目录核心介绍

超全Nginx反向代理服务器原理+实战篇

conf #所有配置文件的目录
	nginx.conf #默认的主要配置文件
	nginx.conf.default #默认模板

html #这是编译安装时Nginx的默认站点目录
	50x.html #错误页面
	index.html #默认首页
	
logs #nginx默认的日志路径,包括错误日志以及访问日志
	error.log  #错误日志
	nginx.pid  #nginx启动后的进程id
	access.log #nginx访问日志

sbin #nginx命令目录
	nginx #启动命令

(3)常见命令

./nginx #默认配置文件启动

./nginx -s reload #重启,加载默认的配置文件,conf/nginx.conf

./nginx -s stop #停止nginx

./nginx -c /usr/local/nginx/conf/nginx.conf #指定配置文件启动

#nginx进程有master process和worker process,关闭master进程即可,其他都被关掉
2.2.Nginx核心配置文件
  • 全局配置
  • server主机配置
  • location(URL匹配特定位置的设置)
#每个配置项有配置指令和指令参数够成 nginx配置文件全部用的相对路径
#user nobody; #指定nginx用户组

worker_processes 1; #指定worker process进程的数量

#error_log logs/error.log;  #错误日志存放的路径
#error_log logs/error.log notice; #告警日志 
#error_log logs/rttor/log info; #平常日志

#pid logs/nginx.pid #nginx进程的启动PID

#事件模块指令,用来指定Nginx的IO模型,Nginx支持的所有select、poll、kqueue、epoll等
#不同的是epoll用在linux平台上,而kqueue用在BSD系统上
events{
   
	use epoll;
	#指定每个worker进程的最大连接数,作为服务器来说,最大连接数为worker_connections * worker_processes
	#作为反向代理来说,最大连接数为worker_connections * worker_processes / 2
	worker_connections 1024;
}
#HTTP模块
http{
   
	#资源的媒体类型
	include mime.types; 
	
	#默认为下载,浏览器访问到未定义的扩展名的时候,就默认为下载该文件
	default_type application/octet-stream; 
	
	#自定义服务日志
	#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent 		"$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"';
	
	#access_log日志,main 日志定义的格式
	#access_log logs/access/log main;
	
	#是否开启高效传输模式 on开启,off关闭
	sendfile on; 
	
	#减少网络报文段的数量
	#tcp_nopush on; 
	
	#客户端连接保持活动的超时时间,超过这个时间服务器会自动关闭
	keepalive_timeout 65;
	
	#是否开启压缩
	#gzip on;
	
	#虚拟主机配置
	server {
   
		#虚拟主机的服务端口
		listen 80;
		
		#用来指定IP地址和域名,可以有多个用空格分开
		server_name localhost;
		
		#charset koi8-r;
		
		#access_log日志,main 日志定义的格式
		#access_log logs/host.access.log main;
		
		#URL地址配置
		location /{
   
			#服务默认启动目录
			root html;
			
			#默认访问文件,按照顺序找
			index index.html;
		}
		
		#URL地址配置
		location ~ \.php${
			#反向代理的地址
			proxy_pass http://127.0.0.1;
		}
	}
	
	server {
   
		....
	}
}
2.3.Nginx搭建前端静态服务器

(1)什么是虚拟主机

  • 指在一台物理主机上划分出多个磁盘空间,每个磁盘空间都是有一个虚拟主机,每台虚拟主机都可以对外提供Web服务,并且互不干扰,类似虚拟机
  • 利用虚拟主机把多个不同域名的网站部署在同一台服务器上,节省了服务器硬件成本和相关的维护费用

超全Nginx反向代理服务器原理+实战篇

(2)Nginx虚拟主机配置

#use nobody;
worker_processes 1;

events{
   
	use epoll;
	worker_connections 1024;
}
http{
   
    server{
   
        listen 80; #监听的端口
        server_name www.nginx.com #请求的域名
        location /{
   
            root /usr/local/software/nginx/html #目录
            index index.html #跳转的页面
        }
    }

    server{
   
        listen 80;
        server_name www.lixiang.com #请求的域名
        location /{
   
            root /usr/local/software/nginx/html #目录
            index lixiang.html
        }
    }
}

重启nginx : ./nginx -s reload文章来源地址https://www.toymoban.com/news/detail-429301.html

到了这里,关于超全Nginx反向代理服务器原理+实战篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx反向代理服务器简单配置案例

    --------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------

    2024年02月03日
    浏览(32)
  • nginx反向代理服务器及负载均衡服务配置

    一、正向代理与反向代理 正向代理:是一个位于客户端和原始服务器(oricin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。 正向代理的典型用途是为在防火

    2024年02月04日
    浏览(36)
  • 具有公网IP的服务器作为代理服务器,并使用Nginx将内网服务器反向代理

    在代理服务器上安装Nginx。如果您正在使用Linux操作系统,则可以使用包管理器来安装Nginx。例如,如果您使用的是Ubuntu,可以使用以下命令安装: 配置Nginx以将HTTP和HTTPS请求转发到内部服务器。打开Nginx的主配置文件/etc/nginx/nginx.conf,并在http块中添加以下代码: 注意: 将

    2024年01月25日
    浏览(33)
  • 【云原生】使用nginx反向代理后台多服务器

    背景 随着业务发展, 用户访问量激增,单台服务器已经无法满足现有的访问压力,研究后需要将后台服务从原来的单台升级为多台服务器,那么原来的访问方式无法满足,所以引入 nginx 来代理多台服务器,统一请求入口。 什么是nginx Nginx[engine x]是一个免费开源Web服务器,是

    2024年02月04日
    浏览(39)
  • 轻量级服务器nginx:反向代理的具体配置

    例如:第一章 Python 机器学习入门之pandas的使用 我们在国内,如果要访问谷歌,那就无法访问,需要借助一个正向代理服务器,先将信息传给代理服务器,代理服务器所在的位置可以访问谷歌,这样就可以做到代理去谷歌取到并返回数据,并把信息发送到自己的终端上。 如果

    2023年04月25日
    浏览(53)
  • Nginx:高性能的Web服务器与反向代理

    在现代互联网应用程序的开发和部署中,选择一个可靠、高性能的Web服务器是至关重要的。Nginx是一个备受推崇的选择,它以其卓越的性能和可靠性在开发者社区中享有盛誉。本文将介绍Nginx的概念、优势,以及如何使用Nginx作为Web服务器和反向代理。 Nginx(发音为“engine X”

    2024年02月19日
    浏览(48)
  • 【开发日记】换掉Nginx,使用HAProxy作为反向代理服务器

    HAProxy,全称为 \\\"High Availability Proxy\\\",是一款开源的、高性能的负载均衡器和代理服务器。主要用于改善应用程序的可用性、可靠性和性能。 与大众熟知的Nginx相比各有优缺点,如果你需要的是一个Web服务器,还是首选Nginx,虽然HAProxy也能实现相同效果,但却需要通过十分繁琐

    2024年01月25日
    浏览(41)
  • 使用Nginx作为反向代理服务器在Linux中的最佳实践

    在Linux环境下,Nginx因其高效性能、稳定性以及丰富的功能集而广泛用于作为反向代理服务器。以下是在Linux中使用Nginx作为反向代理服务器的最佳实践: 1. 安装与配置 首先,确保你的Linux发行版已经安装了Nginx。大多数Linux发行版都提供了Nginx的包管理工具。例如,在基于Deb

    2024年01月17日
    浏览(34)
  • 【网络面试(8)】防火墙原理、正向代理、反向代理、缓存服务器、负载均衡和内容分发服务器

     接上一篇:【网络面试必问(7)】聊聊集线器、交换机和路由器  作为一个程序员,其实很少去了解http请求消息在到达服务器之前,所经过的众多组件的,今天借着机会聊一聊标题中提到的正向代理、反向代理、缓存服务器、负载均衡和内容分发服务器等内容。 1.1 部署

    2024年02月22日
    浏览(31)
  • nginx反向代理实现不同域名映射到同一台服务器的相同端口

    在实际应用中,我们经常会遇到多个域名需要映射到同一台服务器的相同端口的情况,这时可以使用nginx反向代理来实现。 以实现将www.example.com和www.test.com都映射到127.0.0.1的80端口为例,具体步骤如下: 修改hosts文件 在本地hosts文件中添加以下两行: 配置nginx反向代理 在ngi

    2024年02月14日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包