Nginx常用配置
Windows版本Nginx开机自启动
可直接下载已经配置好的文件,点击即可下载:Windows版本Nginx1.26.0
下载WinSW v2.12.0
首先从https://github.com/winsw/winsw/releases下载WinSW v2.12.0
下载Nginx
下载地址https://nginx.org/en/download.html
修改配置
1、将下载的WinSW-x64.exe拷贝到nginx的解压目录,我这里是D:\Server\nginx\nginx-1.26.0
2、将WinSW-x64.exe修改为nginx-service.exe
3、新增一个nginx-service.xml文件,内容如下
<service><id>Nginx</id><name>Nginx Service</name><description>Nginx服务</description><logpath>D:\Server\nginx\nginx-1.26.0\logs\</logpath><logmode>roll</logmode><log mode="roll-by-size"> <sizeThreshold>10240</sizeThreshold> <keepFiles>8</keepFiles> </log><executable>D:\Server\nginx\nginx-1.26.0\nginx.exe</executable><stopexecutable>D:\Server\nginx\nginx-1.26.0\nginx.exe -s stop</stopexecutable>
</service>
命令
用管理员身份打开命令行工具,安装服务执行nginx-service.exe install,卸载服务执行nginx-service.exe uninstall
D:\Server\nginx\nginx-1.26.0>
D:\Server\nginx\nginx-1.26.0>nginx-service.exe install
2024-09-07 21:59:18,214 INFO - Installing service 'Nginx Service (Nginx)'...
2024-09-07 21:59:18,248 INFO - Service 'Nginx Service (Nginx)' was installed successfully.D:\Server\nginx\nginx-1.26.0>
D:\Server\nginx\nginx-1.26.0>nginx-service.exe uninstall
2024-09-07 21:59:28,039 INFO - Uninstalling service 'Nginx Service (Nginx)'...
2024-09-07 21:59:28,044 INFO - Service 'Nginx Service (Nginx)' was uninstalled successfully.
安装成功后,在服务管理器中可以看到
禁止其它域名访问
当一个有多个域名同时配置到一台主机时,这时使用这些域名都可以访问网站,如果要限制其他域名访问,可使用如下配置:
http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;client_max_body_size 200M;# 端口禁止其它二级域名访问server {listen 443 ssl default_server;listen 8443 ssl default_server;server_name _;ssl_certificate cert/test.com.pem;ssl_certificate_key cert/test.com.key;server_tokens off;error_page 403 /403.html;location = /403.html {root html;}error_page 404 /404.html;location = /404.html {root html;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}return 403;}
在NGINX的配置文件中,server_name _; 是一个特殊的指令,用于匹配任何未明确指定的域名。当一个HTTP请求到达NGINX服务器时,它会根据请求头中的Host字段来确定应该由哪个server块来处理这个请求。
当使用server_name _;时,这个server块将作为默认服务器来处理那些没有明确匹配到其他server_name的请求。这在你有多个域名或子域名,并且希望为没有匹配到的请求提供一个默认处理方式时非常有用。例如:
http {server {listen 80;server_name example.com;location / {# 处理example.com的请求}}server {listen 80;server_name _;location / {# 处理未匹配到的域名请求}}
}
在这个例子中,如果一个请求的Host头是example.com,那么第一个server块将会处理这个请求。如果Host头是其他任何域名,那么第二个server块(使用server_name _;)将会作为默认服务器来处理这个请求。
禁止其它二级域名访问
当有多个二级域名都指向一个主机,可以采用如下方式进行限制,注意这里server_name *.test.com;
server {listen 443 ssl;server_name abc.test.com;ssl_certificate cert/test.com.pem;ssl_certificate_key cert/test.com.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;# ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_ciphers ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384;ssl_protocols TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;server_tokens off;keepalive_timeout 65;client_max_body_size 200M;proxy_hide_header Access-Control-Allow-Origin;proxy_hide_header Access-Control-Allow-Credentials;proxy_hide_header Access-Control-Allow-Methods;proxy_hide_header Access-Control-Allow-Headers;proxy_hide_header Vary;add_header Content-Security-Policy "script-src 'self';" always;add_header 'Access-Control-Allow-Origin' 'https://192.168.31.2:443/';add_header 'Access-Control-Allow-Origin' 'https://abc.test.com:5443/';add_header 'Access-Control-Allow-Credentials' 'true';add_header 'Access-Control-Allow-Methods' 'GET,POST';add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';if ($request_method ~* OPTIONS) {return 403;}# 限制Swagger访问location ~ ^/api/v2 {return 403;}location / {root html;index index.html index.htm;}error_page 403 /403.html;location = /403.html {root html;}error_page 404 /404.html;location = /404.html {root html;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}# 443端口禁止其它二级域名访问server {listen 443 ssl;server_name *.test.com;ssl_certificate cert/test.com.pem;ssl_certificate_key cert/test.com.key;server_tokens off;error_page 403 /403.html;location = /403.html {root html;}error_page 404 /404.html;location = /404.html {root html;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}return 500;}
禁止Nginx显示版本
使用server_tokens off,可参看上面的示例配置。
相关文章:

Nginx常用配置
Windows版本Nginx开机自启动 可直接下载已经配置好的文件,点击即可下载:Windows版本Nginx1.26.0 下载WinSW v2.12.0 首先从https://github.com/winsw/winsw/releases下载WinSW v2.12.0 下载Nginx 下载地址https://nginx.org/en/download.html 修…...

前端开发中遇到的小问题以及解决方案记录2
1、H5中适配屏幕的工具-postcss-px-to-viewport postcss-px-to-viewport。因为设计稿一般给的都是375px宽度的,所以假如一个字体是16px,那么在开发中不能直接写死为16px,因为各个厂商的手机屏幕大小是不同的,所以要根据屏幕大小去…...

Qt-常用控件(3)-输入类
1. QLineEdit QLineEdit 用来表示单行输入框.可以输入一段文本,但是不能换行 核心属性 属性说明text输入框中的文本inputMask输入内容格式约束maxLength最大长度frame是否添加边框echoMode显示方式. QLineEdit::Normal :这是默认值,文本框会显示输入的文本。QLineE…...
使用Docker启动Redis容器并映射端口
在现代软件开发中,Redis 是一种非常流行的开源内存数据结构存储,通常用作数据库、缓存或消息传递系统。Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux …...

用fastapi搭建cpca地址提取服务接口
以前的客户地址比较乱,现在想提取出省份城市, 开始了解分词技术,后发现python有这样的库 cpca提取地址挺不错,可以从垃圾地址中提取省市区以及区号。 文章会用fastapi搭建服务端 通过post调用cpca,提取来了后&#…...
libvncclient编写多线程qt的VNC客户端
概述 使用qt和libvncclient编写vnc的客户端程序,多线程读写,拒绝卡顿。qt环境:5.15.3libvncclient:0.9.14下载地址:https://github.com/LibVNC/libvncserver/releases 编译libvncclient 打开CMakeList文件ÿ…...
视频处理基础之gradio框架实现
这些函数是用于处理视频文件的Python代码片段,它们依赖于ffmpeg和ffprobe工具,这些工具是FFmpeg项目的一部分,用于处理视频和音频数据。下面是每个函数的用途和用法的总结: 1. ffmpeg_installed() 函数: - 用途&am…...

黑马点评2——商户查询缓存(P37店铺类型查询业务添加缓存练习题答案)redis缓存、更新、穿透、雪崩、击穿、工具封装
文章目录 什么是缓存?添加Redis缓存店铺类型查询业务添加缓存练习题 缓存更新策略给查询商铺的缓存添加超时剔除和主动更新的策略 缓存穿透缓存空对象布隆过滤 缓存雪崩解决方案 缓存击穿解决方案基于互斥锁方式解决缓存击穿问题基于逻辑过期的方式解决缓存击穿问题…...

概率DP (由一道绿题引起的若干问题。目前为一些老题,蒟蒻的尝试学习1.0)
概率DP: 利用动态规划去解决 概率 期望 的题目。 概率DP 求概率(采用顺推) 从 初始状态推向结果,同一般的DP类似,只是经历了概率论知识的包装。 老题: 添加链接描述 题意: 袋子里有w只白鼠&am…...
[Python]生成器和yield关键字
生成器和yield关键字 1.生成器介绍: 概述: 它指的是 generator, 类似于以前学过的: 列表推导式, 集合推导式, 字典推导式… 作用: 降低资源消耗, 快速(批量)生成数据. 实现方式: 1.推导式写法. my_generator (i for i in range(5)) 2.yield写法. def get_gene…...

Nginx 负载均衡+高可用 集群部署(Keepalived+LVS DR模式)
一、LVS负载均衡简介 1.1 LVS基本介绍 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导开发的开源负载均衡项目,目前LVS已经被集成在Linux内核中。该项目在Linux内核中实现了基于IP地址的请求数据负载均衡调度方…...
算法 | 基础 | 出现奇数次的数字
这里写自定义目录标题 异或运算题目1题目2 本篇是关于异或(^)运算的运用。后期看算法过程中如果再碰到异或的都会收录到本篇中 异或运算 在逻辑学中,逻辑算符异或(exclusive or)是对两个运算元的一种逻辑析取类型&am…...

log4j 控制台和文件输出乱码问题解决
一个小问题,却让我感觉到,现在真正动脑的人很少。。我来说说吧。 今天遇到一个小问题, log4j输出到文件乱码,控制台正常。显然是编码问题导致。Google一搜,几乎一水的说: 项目中log4j在英文版linux下输出中…...

在国产芯片上实现YOLOv5/v8图像AI识别-【4.2】RK3588获取USB摄像头图像推流RTSP更多内容见视频
本专栏主要是提供一种国产化图像识别的解决方案,专栏中实现了YOLOv5/v8在国产化芯片上的使用部署,并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频:https://www.bilibili.com/video/BV1or421T74f 前言…...
TCP/IP协议栈详解及其在现代网络中的应用
在当今数字化时代,网络已成为我们生活中不可或缺的一部分。无论是社交、工作还是娱乐,网络都在背后发挥着至关重要的作用。而这一切的实现,都离不开TCP/IP协议栈。本文将详细介绍TCP/IP协议栈的结构、各层功能以及它在现代网络中的应用。 什…...

亚信安全荣获“2024年网络安全优秀创新成果大赛”优胜奖
近日,由中央网信办网络安全协调局指导、中国网络安全产业联盟(CCIA)主办的“2024年网络安全优秀创新成果大赛”评选结果公布。亚信安全信舱ForCloud荣获“创新产品”优胜奖,亚信安全“宁波市政务信息化网络数据安全一体化指挥系统…...

如何从硬盘恢复已删除/丢失的文件?硬盘恢复已删除的文件技巧
如何从硬盘恢复已删除/丢失的文件?本教程将教您如何使用专业硬盘恢复软件从内置或外置硬盘恢复数据,或不使用软件从硬盘恢复已删除的文件。 “有人知道如何从外部硬盘恢复文件吗?当我将外部硬盘插入计算机时,我错误地删除了一些文…...

[Linux]:权限
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. Linux权限的基本概念 1.1 root与普通用户 在Linux系统中,存在…...
启动Spring Boot报错
一、遇到的问题 启动Spring Boot报错 Unable to close ApplicationContext org.springframework.boot.SpringApplication: Application run failed java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.cache.CacheAutoCo…...

部署project_exam_system项目——及容器的编排
(一)安装docker、编辑daemon.json文件、安装docker-compose编排容器、启动docker 1.环境准备 [rootdocker--1 ~]# rz -Erz waiting to receive.[rootdocker--1 ~]# lsanaconda-ks.cfg docker.sh[rootdocker--1 ~]# source docker.sh [rootdocker--1 ~…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...