当前位置: 首页 > news >正文

【nginx】nginx的配置文件到底是什么结构,到底怎么写?

背景:我window中下载了一个nginx,想要通过nginx来对本地的两个项目做动态代理,但是没想到下载启动都没遇见什么问题,但是在配置nginx.conf配置文件时,遇见了很多问题,查了好久没查到什么特别有用的内容,我特地做下记录,希望能帮助到需要帮助的人。【在文章最后我会附上我的可用的配置文件】

我先讲解一下遇见的其他问题:
首先:我先介绍一下,window从哪里下载nginx
进入官网:https://nginx.org/
在这里插入图片描述
在这里插入图片描述

二、安装
1.打开下载的文件位置,然后进行
2.打开 nginx.exe 文件,会出现一个一闪而过的页面

在这里插入图片描述
第一次一闪就代表启动成功了(这里要特别注意,网上有的地方说 一闪而过是安装成功了,后面还得用命令来启动),其实点击这个exe就代表启动成功了。
我在启动过程中就先点击了这个启动成功,后又去通过在这个安装目录下通过cmd去 启动了,cmd中通过nginx命令直接启动就行 如下图
在这里插入图片描述
这个也是一个启动办法,但是通过此命令启动后,这个不会有反应,不会像启动redis似的 ,会有启动日志,这个会一直卡在这里,这个窗户口就没法继续输入其他命令了,如果安装不成功就会反馈错误 ;
如果还想要对这个nginx进行其他的操作,比如关闭,或者更改配置后的配置刷新,那就需要再次在nginx的安装目录中 我这里是E:\SoftWareInstall\Nginx\nginx-1.26.1 ,去通过cmd再打开一个窗口了。然后再在里面 去用nginx的那些命令
nginx的常用命令(本次使用)

1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)(2)使用 taskkill taskkill /f /t /im nginx.exe(3)刷新配置
nginx -s reload

下图是我重新打开的一个用于执行命令的cmd窗口
在这里插入图片描述

还有个问题
我每次无论去通过启动命令进行启动还是说通过安装目录下的启动命令去启动,都会产生两个nginx进行,如图:
在这里插入图片描述

而且这里面的一个进程的PID 会被记录到nginx的一个日志文件中,文件见下图(这个文件会自动创建,同时会将两个进行中主进程的PID存储到里面,如果我下次再重启nginx后,这个主进程和子进程都会变,)
而且还存在一个现象:我通过taskkill/f /pid 29980 这个来杀掉nginx进程时候,我先杀掉其中某个进程,然后就自动产生了一个进行,还是保持着两个进行,如果我杀掉另外一个,则就不会产生了,后来经过查阅相关资料,存在 子进程和主进程的关系,如果我直接杀掉其中的主进程的话,就不会再产生了,就只留下来了子进程,我再去杀掉子进程,此时两个进程就都没了,此时nginx就被完全的关闭了【这个只是关闭nginx的一种方式】正常的还是推荐使用nginx stop 和quit命令来正常关闭nginx。
在这里插入图片描述
对于上述的nginx.pid文件,在nginx -s reload、nginx -s stop时出现会自动创建,如果报错了在产生的过程中,
报错如下:

nginx: [error] CreateFile() "V:\Web\16 nginx\nginx-1.26.1/logs/nginx.pid" failed (2: The system cann...

方法一:
① 通过 tasklist | findstr “nginx.exe” 查出nginx.exe对应的PID

② 在 xxx/logs/ 下新建文本文件 nginx.pid ,通过文本编辑器将上一步的PID写入

③ 执行 nginx -s stop 或 nginx -s quit 或 nginx -s reload 。

④ 解决

方法二:
或者我们可以直接手动手动创建一个pid文件,然后再重新启动nginx就会自动记录主进程到这个文件中了。

负载均衡概念解释:(直接例子,更明白)

1.理解:通过修改 nginx 的配置文件 nginx.conf 实现当到访问nginx代理服务器时跳转到指定服务器
2.即当我们依然输入http://localhost:80 时,请求会跳转到我们配置location 那porxy_pass那配置的服务器组的映射名称tomcate_server;服务器组就是上面的upstream tomcate_server  {....}配置的名称"tomcate_server" ,
如果我们在浏览器中输入了nginx监听的ip+端口  在这里是localhost:80/  就会转发到我们配置的动态代理那指向的ip和端口,其实也就这样 去理解
比如我们想要访问  localhost:80/test/lock   就会负载均衡到localhost:8080/test/lock 下面 后者其实就是我们部署的服务器地址+ulr

在这里插入图片描述
我们可以配置多个目标服务器
在这里插入图片描述
当服务器 ocalhost:8080 挂掉时,nginx能将请求自动转向服务器 192.168.101.9:8080。上面还加了一个 weight 属性,此属性表示各服务器被访问到的权重,weight 越高被访问到的几率越高

下面是我的完整的nginx.conf配置


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {upstream backend {server 127.0.0.1:8023;server 127.0.0.1:8021;}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  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ##反向代理执行定义的upstream名字}#charset koi8-r;#access_log  logs/host.access.log  main;#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

记录到这里就结束啦,希望能解决大家在网上查不到的问题。一起进步,有什么不足之处,请多多指教~

相关文章:

【nginx】nginx的配置文件到底是什么结构,到底怎么写?

背景:我window中下载了一个nginx,想要通过nginx来对本地的两个项目做动态代理,但是没想到下载启动都没遇见什么问题,但是在配置nginx.conf配置文件时,遇见了很多问题,查了好久没查到什么特别有用的内容&…...

基于React 实现井字棋

一、简介 这篇文章会基于React 实现井字棋小游戏功能。 二、效果演示 三、技术实现 import {useEffect, useState} from "react";export default (props) > {return <Board/> }const Board () > {let initialState [[, , ], [, , ], [, , ]];const [s…...

文件的换行符,Windows 的 CRLF 和 Linux 的 LF

文件的换行符&#xff0c;Windows 的 CRLF 和 Linux 的 LF&#xff0c;在开发项目时用哪种比较合适&#xff1f; 在开发项目时选择文件的换行符&#xff08;Windows 的 CRLF 或 Linux 的 LF&#xff09;&#xff0c;通常取决于几个因素&#xff0c;包括项目的运行环境、项目的…...

怎样优化 PostgreSQL 中对日期时间范围的模糊查询?

文章目录 一、问题分析&#xff08;一&#xff09;索引未有效利用&#xff08;二&#xff09;日期时间格式不统一&#xff08;三&#xff09;复杂的查询条件 二、优化策略&#xff08;一&#xff09;使用合适的索引&#xff08;二&#xff09;规范日期时间格式&#xff08;三&a…...

B端设计:任何不顾及用户体验的设计,都是在装样子,花架子

B端设计是指面向企业客户的设计&#xff0c;通常涉及产品、服务或系统的界面和功能设计。与C端设计不同&#xff0c;B端设计更注重实用性和专业性&#xff0c;因为它直接影响企业的效率和利益。 在B端设计中&#xff0c;用户体验同样至关重要。不顾及用户体验的设计只是空洞的表…...

React@16.x(51)路由v5.x(16)- 手动实现文件目录参考

作为前面几篇文章的参考&#xff1a; 实现 Router实现 Route实现 Switch实现 withRouter实现 Link 和 NavLink 以上。...

从零开始读RocketMq源码(二)Message的发送详解

目录 前言 准备 消息发送方式 深入源码 消息发送模式 选择发送方式 同步发送消息 校验消息体 获取Topic订阅信息 高级特性-消息重投 选择消息队列-负载均衡 装载消息体发送消息 压缩消息内容 构造发送message的请求的Header 更新broker故障信息 异步发送消息 …...

怎样优化 PostgreSQL 中对布尔类型数据的查询?

文章目录 一、索引的合理使用1. 常规 B-tree 索引2. 部分索引 二、查询编写技巧1. 避免不必要的类型转换2. 逻辑表达式的优化 三、表结构设计1. 避免过度细分的布尔列2. 规范化与反规范化 四、数据分布与分区1. 数据分布的考虑2. 表分区 五、数据库参数调整1. 相关配置参数2. 定…...

mysql在linux系统下重置root密码

mysql在linux系统下重置root密码 登录服务器时候mysql密码忘记了&#xff0c;没办法只能重置&#xff0c;找了一圈&#xff0c;把行之有效的方法介绍在这里。 错误展示&#xff1a; 我还以为yes就可以了呢&#xff0c;这是不行的意思。 关掉mysql服务 sudo systemctl stop …...

设计模式探索:观察者模式

1. 观察者模式 1.1 什么是观察者模式 观察者模式用于建立一种对象与对象之间的依赖关系&#xff0c;当一个对象发生改变时将自动通知其他对象&#xff0c;其他对象会相应地作出反应。 在观察者模式中有如下角色&#xff1a; Subject&#xff08;抽象主题/被观察者&#xf…...

Perl语言入门到高级学习

Perl语言介绍 Perl,全称为Practical Extraction and Report Language,即“实用报表提取语言”,是一种高级、通用、直译式、动态的编程语言。Perl最初由Larry Wall设计,并于1987年12月18日首次发布。经过多年的不断发展和更新,Perl已经成为一种功能丰富且应用广泛的计算机程…...

DOM 基本操作 - 获取元素

theme: smartblue 一、简介 1.1 概念 文档对象模型(Document Object Model),是 W3C 组织推荐的处理可拓展标记语言的标准编程接口。 1.2 DOM 树 二、 获取元素 获取页面中的元素主要可以使用以几种方式&#xff1a; - 根据 ID 获取 - 根据 标签名 获取 - 通过 HTML5 新增的方法…...

Google 搜索引擎:便捷高效、精准查询,带来无与伦比的搜索体验

Google搜索引擎不仅具备检索功能&#xff0c;实则是引领探索万千世界的神秘钥匙。试想&#xff0c;无论何时何地&#xff0c;只需轻触屏幕&#xff0c;所需信息即可唾手可得。便捷与高效&#xff0c;令人叹为观止。其界面设计简约直观&#xff0c;操控体验犹如与未来对话&#…...

tomcat的介绍与优化

tomcat介绍 tomcat和php一样&#xff0c;都是用来处理动态页面的。 tomcat也可以作为web应用服务器&#xff0c;开源的。 php .php tomcat .jsp nginx .html tomcat 是用java代码写的程序&#xff0c;运行的是javaweb应用程序 tomcat的特点和功能&#xff1a; 1.servlet容器…...

Python 插入、替换、提取、或删除Excel中的图片

Excel是主要用于处理表格和数据的工具&#xff0c;我们也能在其中插入、编辑或管理图片&#xff0c;为工作表增添视觉效果&#xff0c;提升报告的吸引力。本文将详细介绍如何使用Python操作Excel中的图片&#xff0c;包含以下4个基础示例&#xff1a; 文章目录 Python 在Excel…...

紧凑型建模的veriloga语句要怎么看?

说点人话&#xff0c;真传一句话&#xff0c;那些一堆公式似是而非的东西&#xff0c;都是半懂不懂的人沽名钓誉用的。 其实建模&#xff0c;归根结底明白几个东西就行了。 1.什么是你的输入和输出信号&#xff1f; 2.你对输入输出信号要建立什么功能关系&#xff1f; 那我们看…...

大语言模型系列-Transformer介绍

大语言模型系列&#xff1a;Transformer介绍 引言 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Transformer模型已经成为了许多任务的标准方法。自从Vaswani等人在2017年提出Transformer以来&#xff0c;它已经彻底改变了NLP模型的设计。本文将介绍Transforme…...

JavaDS —— 顺序表ArrayList

顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储。在数组上完成数据的增删查改。在物理和逻辑上都是连续的。 模拟实现 下面是我们要自己模拟实现的方法&#xff1a; 首先我们要创建一个顺序表&#xff0c;顺序表…...

Sphinx 搜索配置

官方文档 http://sphinxsearch.com/docs/sphinx3.html 支持中文&#xff0c;英文&#xff0c;日文&#xff0c;韩文&#xff0c;俄罗斯语搜索 版本是 官网3.6.1版本 文件 sphinx.conf.dist 的windows 配置&#xff0c;官网下载下来后微微配置即可。 # Minimal Sphinx confi…...

如何在不关闭防火墙的情况下,让两台设备ping通

问题现象 如题&#xff0c;做虚拟机实验的时候&#xff0c;有一台linux系统的虚拟机配置的ip地址是192.168.172.181 物理主机的ip地址是192.168.172.1 此时物理主机可以ping通虚拟机 但是虚拟机不能ping通物理主机 此时我们可以想到&#xff0c;有可能是物理主机防火墙的原因。…...

QAnything混合检索实战:ElasticSearch与向量搜索的协同优化

QAnything混合检索实战&#xff1a;ElasticSearch与向量搜索的协同优化 1. 为什么电商搜索总在“猜”用户心思&#xff1f; 你有没有遇到过这样的情况&#xff1a;在电商平台搜索“轻便透气运动鞋”&#xff0c;结果首页全是厚重的登山靴&#xff1f;或者搜“适合夏天穿的连衣…...

图案生成自动化:从基础操作到专业应用的完整指南

图案生成自动化&#xff1a;从基础操作到专业应用的完整指南 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在现代设计工作流中&#xff0c;图案生成往往是最耗时的环节之一。设计…...

【实战指南】彻底解决conda环境变量配置错误:从报错分析到.bashrc修复

1. 遇到conda环境变量报错怎么办&#xff1f; 刚装完Anaconda/Miniconda&#xff0c;满心欢喜准备大展身手&#xff0c;结果终端里输入conda却蹦出一行刺眼的红色报错&#xff1a;"bash: /opt/conda/bin/conda: No such file or directory"。这种场景我见过太多次了&…...

JDK 25模块路径在统信UOS/麒麟V10上启动失败?3步定位osgi-container冲突、jni.so符号缺失与jmod签名验签绕过方案

第一章&#xff1a;Java 25 模块化部署国产化适配方案Java 25 引入了更严格的模块系统约束与原生镜像增强能力&#xff0c;为在麒麟V10、统信UOS、openEuler等国产操作系统上实现轻量、安全、可验证的Java应用部署提供了新路径。适配核心聚焦于JVM层兼容性、模块图裁剪、国密算…...

Ubuntu 20.04 下通过 PPA 快速部署 qBittorrent 及配置指南

1. 为什么选择qBittorrent&#xff1f; 如果你经常需要下载大型文件&#xff0c;比如开源系统镜像、影视素材或者游戏资源&#xff0c;那么一个靠谱的BT客户端绝对是刚需。我在Ubuntu上试过各种BT工具&#xff0c;最终发现qBittorrent是最稳定高效的选择。它完全开源免费&#…...

对于对话中的用户长期兴趣建模,OpenClaw 的序列推荐方法?

关于对话系统中如何捕捉用户长期兴趣这件事&#xff0c;业内琢磨了挺长时间。传统的序列推荐模型&#xff0c;比如那些基于循环神经网络或者注意力机制的&#xff0c;往往更擅长处理短期的、密集的交互序列。它们像是一个敏锐的现场观察者&#xff0c;能立刻抓住你刚才点击了什…...

我的LVDS信号有振铃?可能是端接电阻没选对!从仿真到实测的端接方案选择指南

LVDS信号振铃问题全解析&#xff1a;从端接电阻选择到实测验证 振铃现象是LVDS信号传输中最令人头疼的问题之一。当你在示波器上看到信号边沿出现振荡波形时&#xff0c;第一反应可能是怀疑PCB布局或信号源质量。但经验丰富的工程师都知道&#xff0c;80%的振铃问题根源在于端接…...

病床前尽孝心,脊柱 “被折得濒临损伤”!

长期弯腰照顾卧床病人、喂饭、翻身、擦洗&#xff0c;颈腰椎损伤风险显著。弯腰时腰椎弯曲角度过大&#xff0c;椎间盘承受压力剧增&#xff1b;反复弯腰起身照顾病人&#xff0c;肌肉与椎间盘反复冲击&#xff1b;低头专注护理时&#xff0c;颈椎前伸与腰椎受力形成双重负担。…...

解密GPT:从架构解析到实战应用

1. GPT架构深度拆解 第一次接触GPT模型时&#xff0c;我被它流畅的文本生成能力震撼到了。记得当时用GPT-2生成了一篇伪莎士比亚风格的十四行诗&#xff0c;连文学系的朋友都分不清真假。这种"魔法"背后&#xff0c;其实是精妙的架构设计在支撑。 GPT的核心是Transfo…...

比迪丽WebUI保姆级教程:从服务器IP获取到首张图生成全过程

比迪丽WebUI保姆级教程&#xff1a;从服务器IP获取到首张图生成全过程 1. 前言&#xff1a;为什么选择比迪丽WebUI&#xff1f; 如果你对《龙珠》里的比迪丽&#xff08;Videl&#xff09;这个角色情有独钟&#xff0c;想用AI画出她的各种形象&#xff0c;那么今天这个教程就…...