您好,nginx.conf文件是Nginx的配置文件,它包含了Nginx服务器的所有配置信息。在本文中,我们将对nginx.conf文件进行重新梳理,并帮助读者理清nginx配置思路。
首先,我们需要了解nginx.conf文件的结构。它主要分为三部分:全局块、events块和http块。其中,全局块设置了运行Nginx服务器的用户(组)、允许生成的worker process数、进程PID存放路径、日志存放路径等信息;events块影响Nginx服务器与用户的网络连接;http块包括一个或多个server块,是配置Web服务器最重要的部分。
在理解nginx.conf文件时,我们可以将其分为三个部分进行理解:第一部分:全局块;第二部分:events块;第三部分:http块。对应图解如下所示:
3.1、全局块
作用:从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行Nginx服务器的用户(组)、允许生成的worker process数、进程PID存放路径、日志存放路径和类型以及配置文件的引入等。
3.2、events块
作用:events块涉及的指令主要影响Nginx服务器与用户的网络连接,常用的设置包括是否开启对多workprocess下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个word process可以同时支持的最大连接数等。
3.3、http块
作用:这算是Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是:http块也可以包括http全局块、server块。
以上是关于如何理解nginx.conf文件的简要介绍。如果您需要更深入地了解该文件及其相关指令和区块等内容,请参考以下链接:
每个HTTP块可以包含多个server块,而每个server块相当于一个虚拟主机。每个server块又分为全局server块和可以同时包含多个location块。
全局server块:最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。
location块:一个server块可以配置多个location块。这块的主要作用是基于Nginx服务器接收到的请求字符串(例如server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如前面的/uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
最简单的上线配置:以上,我们就知道了Nginx整体大致的结构,以及每部分的结构是用于做什么的。接下来我们就修改Nginx关键位置来实现我们网站的代理功能。看着Nginx配置很繁琐,但是如果你只是需要上线一个网站,那么你只需要去修改两个地方即可:
1. 使用默认简单的配置,然后指定server_name和root,主要是告诉Nginx代理的IP是xxx,然后我放在服务器的文件在bbb文件夹即可。Nginx便会在用户访问这个IP时,自动地将bbb文件夹中的index.html返回到浏览器来展示页面。
2. 前端history模式404问题:这段代码的作用是,当用户刷新页面时,Nginx会先检查当前URL是否存在,如果不存在,就会尝试访问index.html,从而可以正常显示页面。
Nginx优化:
1. 前端history模式404问题:这段代码的意思是,大致就是如果遇到以/police请求开头的接口,那么就去访问这个IP地址(http://192.168.1.182:8852/police/)的后台端口。例如我们通过axios去访问/police/getList这个后台接口时,Nginx会将这个请求转发到IP端口为http://192.168.1.182:8852的后台中,后台将结果返回给Nginx,Nginx再把结果给到浏览器,实现反向代理。
您可以将多个端口的反向代理配置在一个server块中,然后通过不同的端口访问同一域名下的不同WEB服务。以下是一个示例,其中有两个server块,一个用于静态资源,另一个用于动态资源 :
```
http {
server {
listen 80;
server_name example.com;
location /static/ {
root /var/www/example.com;
expires 30d;
}
}
server {
listen 8080;
server_name example.com;
location /dynamic/ {
proxy_pass http://backend;
}
}
}
```
在本文中,我们将讨论如何将较大的图片或其他文件(如纯前端开源项目,例如pdf.js)存放在服务器上,并通过nginx进行转发。这样做的好处是避免了将这些文件打包到本地代码包中,从而减小了打包后的体积。同时,我们还将探讨一些关于nginx的基础知识和其他优化方法,以便在满足基本需求的同时提高性能。最后,我们将介绍一些关于nginx基础命令的操作,包括安装、启动、重启和关闭等。
具体位置:6、其他优化
在这里,我们仅讨论了一些关于nginx基础知识和基础优化的方法。虽然这些方法已经足够应对大部分场景,但如果您希望追求更高的性能,可以根据搜索到的文章内容进行相应的优化。需要注意的是,虽然nginx配置可能会比较复杂,但只要理解了整体结构和脉络,其实还是相对简单的。因此,我们在这里不会过多地讲解具体的配置方法。
7、nginx基础命令(安装、启动、重启、关闭)
安装nginx的过程相对简单,只需按照官方文档的指引进行操作即可。在安装完成后,您可以检查是否存在nginx进程。此外,您还可以查看服务器端口占用情况,以确保nginx已成功启动。
以下是关于nginx启动、重启和关闭的基本命令:
1. 启动nginx:
```php
sudo nginx
```
2. 停止nginx:
```arduino
sudo nginx -s stop
```
3. 重新启动nginx:
```php
sudo service nginx restart
```
要查看默认的nginx配置文件路径,您可以使用以下命令:
```bash
sudo find / -name nginx.conf
```
请注意,如果对nginx.conf文件进行了更改,需要重启nginx才能使更改生效。但是,如果您仅更改了dist包或html目录下的文件,则无需重启nginx。