nginx配置http及https

nginx配置http及https

    • 1.动静分离
    • 2.负载均衡
    • 3.配置https
    • 4.请求重定向
    • 5.常用参数配置介绍

现在日常工作中的项目大多数都是采用前后端分离,就用到了nginx进行反向代理、处理静态资源等;因此,记录整理了nginx一些常用的配置;

1.动静分离

将动态请求和静态请求分开处理;通常是将动态请求转发到应用服务器进行处理,静态请求由nginx直接提供;

server {listen 80;location / {#指定静态资源root /data/test/test-front/dist/;index  index.html index.htm;try_files $uri $uri/ /index.html;}location /prod-api/ {#指定动态请求的处理proxy_pass http://127.0.0.1:8000/;}
}

2.负载均衡

将客户端请求均匀分配到多个服务器上,提高系统的响应速度及可用性;

http {upstream backend {#配置负载均衡服务器组#有端口需要把端口带上server www.xxxxx.com:80;server www.xxxxx1.com;server www.xxxxx2.com;}server {listen 80;location / {proxy_pass http://backend;}}
}

提示:可以对负载均衡服务器组里面的节点设置权重、尝试连接主机失败次数、失败次数后下次检查的间隔时间、热备、标记为不可用等;
weight=1:设置服务器权重,默认1,权重值越大,接受的请求比例越大;
max_fails=1:nginx尝试连接失败的次数,超过次数就会将请求转发给其他正常工作的服务器;
fail_timeout=10s:设置尝试连接失败后,下次检查的间隔时间,默认10s;
backup:热备,将服务器作为备用服务器,其他主服务器全部宕机后就会像他转发请求;
down:标记服务器为不可用;

例如:
server www.xxxxx.com weight=1 max_fails=1 fails_timeout=10s;<----#默认配置
server www.xxxxx.com backup;
server www.xxxxx.com down;

3.配置https

server {listen       443 ssl;server_name  www.xxxxx.com;#指定ssl的crt文件和key文件路径;ssl_certificate      /data/test/ssl/xxxxxx.crt;ssl_certificate_key  /data/test/ssl/xxxxxx.key;#设置Nginx的SSL/TLS片段优化加强HTTPS安全性和性能;ssl_session_cache    shared:SSL:1m;ssl_session_timeout  5m;ssl_ciphers  HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers  on;#强制转htttpsproxy_redirect http:// $scheme://;#设置请求体、文件大小限制,默认1m;非必选;client_max_body_size 50m;location / {root   /data/test/test-front/dist/;index  index.html index.htm;try_files $uri $uri/ /index.html;
}location /prod-api/ {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_pass http://127.0.0.1:8000/;
}

4.请求重定向

1.return简单重定向

如:访问www.xxxxx.com时,返回一个301的请求,并重定向到http://www.xxxxx.com:8000,保留其参数;
www.xxxxx.com:源地址;
http://www.xxxxx.com:8000/:目标地址;
?$args:表示保留参数;

server {listen 80;server_name www.xxxxx.com;location / {return 301 http://www.xxxxx.com:8000/?$args;}
}

2.rewrite根据规则进行重定向

如:访问www.xxxxx.com时,进行规则匹配^/(.*),将符合规则的重定到http://www.xxxxx.com:8000,保留其参数;
www.xxxxx.com:源地址;
^/(.*)$:匹配url规则(任何url路径),并将匹配到的内容存储在$1中;
http://www.xxxxx.com:8000/:目标地址;
?$args:表示保留参数;
permanent:表示永久重定向;

server {listen 80;server_name www.xxxxx.com;location / {rewrite ^/(.*)$ http://www.xxxxx.com:8000/$1?$args permanent;}
}

5.常用参数配置介绍

client_max_body_size:#设置请求体、文件大小限制默认1m,如:client_max_body_size 50m;
client_header_timeout:默认值60s,client发送一个请求头的超时时间,如:client_header_timeout 60s;
client_body_timeout:默认值60s,设置请求体的读取超时时间,如:client_header_timeout 60s;
proxy_connect_timeout:默认60s,设置的连接超时时间,如:proxy_connect_timeout 60s;
proxy_read_timeout 600s;:默认60s,设置nginx等待请求响应的时间,如:proxy_read_timeout 60s;
proxy_send_timeout:默认60s,设置发送请求给服务器的超时时间,如:proxy_send_timeout 60s
proxy_set_header Host $http_host;:设置转发请求的请求头host字段为,客户端主机;
proxy_set_header X-Real-IP $remote_addr;:设置转发请求的请求头X-Real-IP字段为,客户端真实ip(准确的说是上一节点的ip);
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;:设置X-Forwarded-For字段,用来记录原始ip地址;
proxy_set_header X-Forwarded-Proto $scheme;:将请求重定向为指定协议,如:https配置中,即是强制转https;

以上参数可以配置在,http、server、location等块中,区别是不同块作用域不同;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/62839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react学习记录

一、目录结构react优秀代码之react目录结构简洁之道React 作为一个库&#xff0c;不会决定你如何组织项目的结构。这是件好事&#xff0c;因为这样 - 掘金【React】项目的目录结构全面指南_react项目结构-CSDN博客 1、创建项目&#xff1a;开发文档 Getting Started | Create…

SpringBoot 架构下的在线家具商城:规划与实践之路

第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔记本的广泛运用&#xff0c;以及各种计算机硬件的完善和升…

ios上滚动条不能滑动 滚动卡住的问题

iosapp上viewweb h5不能滑动的问题 1.给滑动容器添加样式 overflow-x: hidden!important; overflow-y:scroll!important; touch-action: auto!important; -webkit-overflow-scrolling: touch!important;//惯性滑动2.html添加 <meta content"yes" name"appl…

二分搜索(二)搜索插入位置

35. 搜索插入位置 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: …

政府大数据应用启示

数据是基础性资源&#xff0c;也是重要生产要素。如何管理政府大数据资产&#xff0c;我国各部门还缺乏统一标准&#xff0c;如何利用大数据进行精细分析&#xff0c;仍处于探索起步阶段&#xff0c;应用分散。分析我国政府大数据应用的现状和特点&#xff0c;借鉴国外的有益经…

Ubuntu 20.04中的关键文件路径符号:根目录()与用户主目录()的详细解析及应用示例

Ubuntu 20.04中的关键文件路径符号&#xff1a;根目录(/)与用户主目录(~)的详细解析及应用示例 在Ubuntu 20.04 LTS中&#xff0c;理解文件路径是进行有效文件系统导航的基础。特别地&#xff0c;/和~是两个非常重要的符号&#xff0c;它们在文件路径中扮演着关键角色。这两个…

【阅读笔记】Android广播的处理流程

关于Android的解析&#xff0c;有很多优质内容&#xff0c;看了后记录一下阅读笔记&#xff0c;也是一种有意义的事情&#xff0c; 今天就看看“那个写代码的”这位大佬关于广播的梳理&#xff0c; https://blog.csdn.net/a572423926/category_11509429.html https://blog.c…

【C++boost::asio网络编程】有关异步读写api的笔记

异步读写api 异步写操作async_write_someasync_send 异步读操作async_read_someasync_receive 定义一个Session类&#xff0c;主要是为了服务端专门为客户端服务创建的管理类 class Session { public:Session(std::shared_ptr<asio::ip::tcp::socket> socket);void Conn…

Bootstrap Blazor MAUI开发的App实现检查更新

1、开发更新服务接口 namespace UpdateApkpublic interface IUpgradeService {/// <summary>/// 检查更新/// </summary>/// <param name"url">/// 检查URL/// </param>/// <returns></returns>Task<Dictionary<string, …

mvc基础及搭建一个静态网站

mvc asp.net core mvc环境 .net8vscode * Asp.Net Core 基础* .net8* 前辈* .net 4.9 非跨平台版本 VC* 跨平台版本* 1.0* 2.0* 2.1* 3.1* 5* 语言* C#* F# * Visual Basic* 框架* web应用* asp应用* WebFrom* mvc应用* 桌面应用* Winform* WPF* Web Api api应用或者叫服务* …

Proteus8.17下载安装教程

Proteus是一款嵌入式系统仿真开发软件&#xff0c;实现了从原理图设计、单片机编程、系统仿真到PCB设计&#xff0c;真正实现了从概念到产品的完整设计&#xff0c;其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等&#xff0c;能够帮助用…

frp 内网穿透

文章目录 前言使用自己的服务器搭建frp 这里服务器是linux centos 7 宝塔&#xff0c;client是 windows10 https://github.com/fatedier/frp/releases/tag/v0.53.2 版本下载分客户端与服务端 一、frp是什么&#xff1f;二、使用步骤1.部署服务器端2.客户端 前言 使用自己的服务…

大数据-239 离线数仓 - 广告业务 测试 FlumeAgent 加载ODS、DWD层

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

基于 SpringBoot 开发在线家具商城:设计架构与实践流程

第3章 系统分析 用户的需求以及与本系统相似的在市场上存在的其它系统可以作为系统分析中参考的资料&#xff0c;分析人员可以根据这些信息确定出本系统具备的功能&#xff0c;分析出本系统具备的性能等内容。 3.1可行性分析 尽管系统是根据用户的要求进行制作&#xff0c;但是…

Java学习教程,从入门到精通,Java throw和throws 关键字语法知识点及案例代码(47)

throw 和 throws 是 Java 中用于处理异常的两个关键字。下面是它们的基本语法和简单案例代码&#xff0c;以帮助初学者理解。 1. throw 关键字 throw 关键字用于手动抛出一个异常对象。通常在某个方法中&#xff0c;当你检测到错误条件时&#xff0c;可以创建一个异常对象并使…

【Django-xadmin】

时间长不用,会忘的系列 1、Django-xadmin后台字段显示处理 主要是修改每个模块下adminx.py文件 代码解释&#xff1a;第1行控制表单字段显示第2行控制列表字段显示第3行控制搜索条件第4行控制过滤条件第5行支持单个或多个字段信息修改第6行列表分页&#xff0c;每页显示多少行…

【HM-React】02. React基础-下

React表单控制 受控绑定 概念&#xff1a;使用React组件的状态&#xff08;useState&#xff09;控制表单的状态 function App(){const [value, setValue] useState()return (<input type"text" value{value} onChange{e > setValue(e.target.value)}/>) …

朗迪锋亮相2024人因工程与智能系统交互国际会议

2024年11月28日至30日&#xff0c;2024人因工程与智能系统交互国际会议在深圳隆重举办。此次大会以推动我国人因工程学科发展为目标&#xff0c;致力于加强国际学术交流&#xff0c;深入探讨人工智能时代的智能系统交互&#xff0c;旨在培育新质生产力&#xff0c;助力经济社会…

基于Java Springboot房屋租赁App且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…

【小白学机器学习42】进行多次抽样,样本的分布参数和总体的分布参数的关系

目录 1 进行多次抽样&#xff0c;样本的分布参数和总体的分布参数的关系 2 样本容量越大&#xff0c;多次抽样的样本的分布参数和总体的分布参数的关系 2.1 如果进行多次抽样&#xff0c;样本的均值将趋向总体的均值 2.2 换句话说&#xff1a;样本的均值将趋向总体的均值就…