Nginx静态内容和反向代理

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


一、Nginx介绍

1. 简介

Nginx(读作“engine x”)是一个高性能的开源HTTP和反向代理服务器。
高性能:可以处理大量的并发连接,并且具有响应速度快、资源消耗低的优点。
反向代理:可以作为反向代理服务器,负载均衡、动态内容缓存。
静态内容服务:可以快速地提供静态网页、图像、视频等静态内容的传输。
HTTP缓存:可以配置HTTP缓存策略,缓存静态内容和动态内容的响应,减轻后端服务器的负载。
安全性:具有安全性强的特点,可以进行安全的通信,支持SSL/TLS协议和HTTPS的加密连接。

2. 相关网站

Nginx官方下载

3. 配置文件

worker_processes auto;								# 开启业务进程数, 建议设置为CPU总核心数
worker_rlimit_nofile 51200;							# 打开文件数的总和

events
	{
		use epoll;									# 使用epoll模型
		worker_connections 51200;					# 客户端最大连接数
		multi_accept on;							# 同时接受多个连接请求
	}

http
	{
		include mime.types;							# 引入http mime类型
		default_type application/octet-stream;		# 默认文件类型
		client_header_buffer_size 32k;				# 接收用户请求中HTTP header部分时分配的内存buffer大小
		large_client_header_buffers 4 32k;			# 请求中的HTTP header超过client_header_buffer_size时生效
		client_max_body_size 500m;					# 允许客户端请求的最大单文件字节数
		client_body_buffer_size 512k;				# 缓冲用户端请求的最大字节数
		proxy_connect_timeout 300;					# 和后端服务器连接超时时间
		proxy_read_timeout 300;						# 连接成功后, 后端服务器响应超时时间
		proxy_send_timeout 300;						# 后端服务器数据回传超时时间
		proxy_buffer_size 32k;						# 保存用户头信息的缓冲区大小
		proxy_buffers 4 64k;						# proxy_buffers缓冲区
		proxy_busy_buffers_size 128k;				# 高负荷下缓冲大小(proxy_buffers*2)
		proxy_temp_file_write_size 128k;			# 缓存文件夹大小
		# 当其中一台返回错误码时, 可以分配到下一台服务器程序继续处理
		proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; # 111
		# 限制并发连接数以及下载带宽
		limit_conn_zone $binary_remote_addr zone=perip:10m;
		limit_conn_zone $server_name zone=perserver:10m;

		sendfile on;								# 开启高效文件传输模式
		tcp_nopush on;								# 防止网络阻塞
		tcp_nodelay on;								# 防止网络阻塞
		keepalive_timeout 300;						# 客户端连接保持活动的超时时间

		# FastCGI配置, 改善网站的性能
		fastcgi_connect_timeout 300;
		fastcgi_send_timeout 300;
		fastcgi_read_timeout 300;
		fastcgi_buffer_size 64k;
		fastcgi_buffers 4 64k;
		fastcgi_busy_buffers_size 128k;
		fastcgi_temp_file_write_size 256k;
		fastcgi_intercept_errors on;

		# gzip压缩配置
		gzip on;
		gzip_min_length 1k;
		gzip_buffers 4 16k;
		gzip_http_version 1.1;
		gzip_comp_level 2;
		gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
		gzip_vary on;
		gzip_proxied expired no-cache no-store private auth;
		gzip_disable "MSIE [1-6]\.";

		# 虚拟主机, 可以配置多个
		server
			{
				listen 8080;								# Nginx监听端口号

				# 设置静态内容服务
				location / {
					alias /usr/share/nginx/html/;
				}

				# 设置反向代理
				location /test/base/api/ {
					proxy_pass http://127.0.0.1:8002/base/api/;
				}

				# 设置Nginx状态模块
				location /nginx_status {
					stub_status on;
					access_log off;
					allow 127.0.0.1;
					deny all;
				}

				# 未匹配uri禁止访问
				location ~ /\.
				{
					deny all;
				}
			}
}

二、location说明

1. 匹配规则

语法 匹配规则 优先级
= 精确匹配uri完整路径, 如果匹配成功,则立即处理请求 1
^~ 前缀匹配,会匹配表达式最长的那个 2
~ 区分大小写的正则匹配, 如果匹配成功,则立即处理请求 3
~* 不区分大小写的正则匹配, 如果匹配成功,则立即处理请求 3
不带修饰符匹配,会匹配表达式最长的那个 4
/ 通用匹配 5
location /a/b/ {			# 规则1
	return 101;
}
location = /a/b/ {			# 规则2
	return 102;
}
location ^~ /a/b/c/ {		# 规则3
	return 103;
}
location ^~ /a/b/c/d/ {		# 规则4
	return 104;
}
location ~ /a/b/ {			# 规则5
	return 105;
}
location ~* /a/b/ {			# 规则6
	return 106;
}
location /b/c/ {			# 规则7
	return 107;
}
location /b/ {				# 规则8
	return 108;
}
location / {				# 规则9
	return 109;
}

# 精确匹配,返回状态码 102
curl -I http://127.0.0.1:8080/a/b/
# 前缀匹配,返回状态码 103
curl -I http://127.0.0.1:8080/a/b/c/d?e=1
# 前缀匹配,返回状态码 104
curl -I http://127.0.0.1:8080/a/b/c/d/e?f=1
# 区分大小写正则匹配,返回状态码 105
curl -I http://127.0.0.1:8080/a/b/c?d=1
# 不区分大小写正则匹配,返回状态码 106
curl -I http://127.0.0.1:8080/a/B/c?d=1
# 不带修饰符匹配,返回状态码 107
curl -I http://127.0.0.1:8080/b/c/d?e=1
# 不带修饰符匹配,返回状态码 108
curl -I http://127.0.0.1:8080/b/c?d=1
# 通用匹配,返回状态码 109
curl -I http://127.0.0.1:8080/b?d=1

2. 替换匹配部分

语法 说明
proxy_pass不带/ 把请求的path拼接到proxy_pass之后
proxy_pass带/ 匹配成功的部分剪切掉后再拼接到proxy_pass之后
# 访问地址:http://127.0.0.1:8080/test/api
location /test/api {
	proxy_pass http://127.0.0.1:8080;
}

# 访问地址:http://127.0.0.1:8080/api/
location /test/api/ {
	proxy_pass http://127.0.0.1:8080/api/;
}

三、Nginx代理

1. Spring服务代理

# 前端静态内容
location /test/spring/ {
	alias /usr/share/nginx/html/spring/;
}

# 后端接口反向代理
location /test/spring/api/ {
	proxy_pass http://127.0.0.1:8080/spring/api/;
	# nginx转发时保留原始请求域名信息
	proxy_redirect off;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

2. MySQL代理

stream标签和http同级文章来源地址https://www.toymoban.com/news/detail-833687.html

stream
	{
		allow 192.168.1.12;
		deny all;
		server
			{
				listen 3306;
				proxy_pass 192.168.1.11:3306;
			}
	}

3. MinIO代理

location /test/minio/ {
	proxy_pass http://192.168.1.11:9000/; 
	proxy_set_header Host $http_host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Proto $scheme;
	proxy_connect_timeout 300;
	proxy_http_version 1.1;
	proxy_set_header Connection "";
	chunked_transfer_encoding off;
}

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

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

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

相关文章

  • Nginx使用proxy_cache指令设置反向代理缓存静态资源

    CentOS7中解压tar包的方式安装Nginx: CentOS7中解压tar包的方式安装Nginx_centos7 tar文件 怎么load_霸道流氓气质的博客-CSDN博客 参考上面流程实现搭建Nginx的基础上,实现静态资源的缓存设置。 注意上面安装时的目录是在/opt/nginx目录下,这里是在/usr/local/nginx目录下。 nginx作为一款高

    2024年02月14日
    浏览(46)
  • 【代理服务器】Squid 反向代理与Nginx缓存代理

    如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 Web 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。 缓存网页对象,减少重复请求 将互联网请求

    2024年02月12日
    浏览(54)
  • 微服务系列文章之 Nginx反向代理

    Nginx反向代理模块的指令是由 ngx_http_proxy_module 模块进行解析,该模块在安装Nginx的时候已经自己加装到Nginx中了,接下来我们把反向代理中的常用指令一一介绍下: 该指令用来设置被代理服务器地址,可以是主机名称、IP地址加端口号形式。 语法 proxy_pass URL; 默认值 — 位置

    2024年02月16日
    浏览(34)
  • Nginx反向代理服务流式输出设置

    提问:为什么我部署的服务没有流式响应 最近在重构原有的GPT项目时,遇到gpt回答速度很慢的现象。在使用流式输出的接口时,接口响应速度居然还是达到了30s以上。 分析现象我发现,虽然前端还是流式打印的结果,但是,好像是接口处理完了,再以流式返回到的前端。 因

    2024年02月13日
    浏览(43)
  • 使用Nginx作为反向代理服务器

    简介 在本教学文章中,我们将学习如何使用Nginx作为反向代理服务器,将流量转发到后端服务器。反向代理是一种常见的应用场景,它可以帮助我们提高应用程序的可靠性、性能和安全性。本教程将介绍如何配置Nginx作为反向代理,并涵盖负载均衡和缓存设置。 前提条件 在开

    2024年02月13日
    浏览(45)
  • Linux服务——nginx重写功能与反向代理

    目录 一、nginx重写功能 if指令  return指令 set指令 break指令 rewrite指令 防盗链 二、反向代理 反向代理参数 反向代理——缓存功能 反向代理——ip穿透 反向代理——动静分离 反向代理——负载均衡 Nginx服务器利用 ngx_http_rewrite_module 模块解析和处理rewrite请求,此功能依靠 PCR

    2024年02月10日
    浏览(35)
  • Nginx HTTP和反向代理服务器

    1、概念: Nginx  (engine x) 是一个高性能的HTTP和反向代理web服务器。 2、什么是代理服务器: 概念: 代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页信息,而是通过向代理服务器发送请求,信号会先送到代理服务

    2024年02月04日
    浏览(48)
  • nginx 反向代理服务器端口转发问题

    先介绍一下项目背景,公司里有个外包Saas项目,这里假设为A项目( 前后端不分离 );项目架构大概如下;但是项目部署到生产环境时,那台服务器80端口被其他应用占用了(我尼玛...),nginx监听端口那边只能监听其他端口了,比如监听:18000,通过nginx反向代理将18000端口转发到

    2024年02月04日
    浏览(52)
  • Nginx反向代理服务器简单配置案例

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

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

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

    2024年02月04日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包