< 返回新闻公共列表

NGINX教程:命令和配置

发布时间:2023-04-11 15:16:44

在下面的教程中,小编将向大家分析下NGINX的基本命令和配置教程。本文主要的内容:

1、中央控制单元:nginx.conf

2、管理流程并采用新配置

3、如何规范静态内容的传递

4、设置一个简单的nginx代理服务器


NGINX教程:命令和配置.png


一、中央控制单元:nginx.conf

Nginx是基于事件的,因此与Apache的工作方式不同。单个请求不被归类为新的工作流程(必须为其加载所有模块),而是被归类为事件。这些事件分为现有的工作流程,由初级主流程维护。nginx.conf配置文件定义了最终存在的工作进程数,以及服务器请求(即事件)如何划分。我们可以在/usr/local/nginx/conf、/etc/nginx或/usr/local/etc/nginx这些文件中找到它们。


二、管理流程并采用新配置

Nginx安装后自动启动,但我们可以使用以下命令启动它:

sudo service nginx start

Web服务器软件运行后,我们可以通过使用-s参数和特定信号对进程(主要是主进程)进行寻址来对其进行管理。对应命令的语法比较不起眼:sudo nginx -s signal

对于“信号”,我们有以下四种可能性: 

stop:nginx 立即终止。

quit:nginx 在所有活动请求都得到答复后终止。

reload:重新加载配置文件。

重新打开:重新启动日志文件。

用于重新加载配置文件的重新加载选项是进行更改而无需终止网络服务器软件并随后重新启动它的好方法。无论如何,要接受更改,我们必须决定是要完全重新启动服务器还是只需要nginx reload。如果我们选择后一个选项并执行了以下命令,则主进程会收到将更改应用到nginx.conf文件的指令:sudo nginx -s reload

为此,首先检查语法的准确性。如果有积极的反馈,新设置使主流程能够启动新的工作流程并同时停止旧流程。如果无法验证语法,则保留旧的配置状态。一旦处理完所有活动的请求,所有活动的工作流就会终止。

此外,我们还可以使用诸如kill之类的工具来定位nginx进程。我们只需要相应的进程ID,它可以在/usr/local/nginx/logs目录或/var/run目录下的nginx.pid文件中找到。例如,如果主进程的ID为1628,则可以使用序列中的kill和quit信号终止它。

sudo kill -s quit 1628

我们还可以使用服务程序ps来显示所有正在运行的nginx进程的列表:

sudo ps -ax | grep nginx


三、如何规范静态内容的传递

我们很可能使用Web服务器来传送图像、视频或静态HTML内容等文件。为了提高效率,最好为不同的内容类型选择不同的本地目录。首先创建一个示例目录/data/html并在其中放置一个示例HTML文档index.html,然后创建一个包含一些示例图像的文件夹/data/images。

对于下一步,必须通过在服务器块指令中保存这两个目录将这两个目录输入到配置文件中,而服务器块指令又是HTTP块指令的子指令。默认情况下已经设置了各种指令,我们可以先使用 ( off )将其关闭。然后简单地创建一个单独的服务器块语句:

http {

  server {

  }

}

在此服务器块中,我们应该指定包含图像和HTML文档的两个目录。对应的结果如下:

server {

  location / {

    root /data/html;

  }

location /images/ {

    root /data;

  }

}

此配置是侦听端口80并可通过本地主机访问的服务器的默认设置。所有URI以/images/开头的请求现在都将从/data/images目录请求文件。如果不存在合适的文件,将出现一条错误消息。所有URI不以/images/开头的nginx事件都被传递到/data/html目录。

不要忘记重新加载或重新启动nginx以应用更改。


四、设置一个简单的nginx代理服务器

Nginx经常被用来(而不是实际的服务器)来运行代理服务器来接收传入的请求。它根据各种标准过滤它们,转发它们,并将相应的响应传递给客户。缓存代理特别受欢迎。它们直接传送本地存储的静态内容,并且只将所有进一步的请求转发给服务器。防火墙代理也很常见,可以过滤掉不安全或不需要的连接。以下是缓存代理的示例,它从本地目录检索请求的图像并将所有进一步的请求转发到Web服务器。

第一步,我们需要在nginx.conf中定义主服务器:

server {

  listen 8080;

  root /data/up1;

location / {

  }

}

与前面的示例相反,使用list指令是因为端口8080(而不是标准端口)将用于传入请求。我们还应该创建目标目录/data/up1并在那里归档index.html页面。

其次,定义了代理服务器及其能够传送图像内容的功能。这是通过使用ProxyPass指令执行的,包括主要服务器协议( http )、名称 ( localhost )和端口( 8080 )的详细信息:

server {

  location / {

    proxy_pass http://localhost:8080;

  }

location ~ \.(gif|jpg|png) $ {

    root /data/images;

  }

}

第二个location-block指示代理服务器通过从本地/data/images目录中检索相应的内容来回答所有请求,如果它们的URI以典型的图像文件(例如.gif、.jpg和.png)结尾。所有其他请求都转发到主服务器。与之前的设置一样,通过将重新加载信号保存到主进程或通过重新启动 nginx 来保存图像代理。我们可以在官方nginx在线手册中找到有关复杂代理设置的更多指令。


以上是NGINX命令和配置教程的介绍,希望能帮助到大家!


/template/Home/Zkeys724/PC/Static