新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

NGINX教程:命令和配置

发布时间:2023-04-12 09:47:15

在下面的教程中,小编将向大家分析下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命令和配置教程的介绍,希望能帮助到大家!