Nginx 的常见用途之一是将其设置为代理服务器,这意味着服务器接收请求,将它们传递给代理服务器,从它们检索响应,并将它们发送到客户端,下面我们就来说一说关于nginx服务器的使用教程?我们一起去了解并探讨一下这个问题吧!
nginx服务器的使用教程
Nginx 的常见用途之一是将其设置为代理服务器,这意味着服务器接收请求,将它们传递给代理服务器,从它们检索响应,并将它们发送到客户端。
我们将配置一个基本的代理服务器,它为来自本地目录的文件的图像请求提供服务,并将所有其他请求发送到代理服务器。在此示例中,两个服务器都将在单个 nginx 实例上定义。
首先,通过在 nginx 的配置文件中再添加一个 server 块来定义代理服务器,其内容如下:
server {
# 监听 8080 端口
listen 8080;
# 将请求映射到本地目录,例如:图片、js等等
root /data/up1;
location / {
#
}
}
这将是一个简单的服务器,它侦听端口 8080(以前,由于使用了标准端口 80,因此未指定 listen 指令)并将所有请求映射到本地文件系统上的 /data/up1 目录。创建此目录并将 index.html 文件放入其中。请注意,root 指令位于服务器上下文中。当用于服务请求的 location 块不包含自己的 root 指令时,使用此类 root 指令。
接下来,使用上一节中的服务器配置并对其进行修改,使其成为代理服务器配置。在第一个 location 块中,将 proxy_pass 指令与参数中指定的代理服务器的协议、名称和端口一起放置(在我们的示例中,它是 http://localhost:8080):
server {
location / {
proxy_pass http://localhost:8080;
}
# 将带有 /images/ 字符串的请求 URL 映射到 /data 目录
location /images/ {
root /data;
}
}
我们将修改第二个 location 块,该块当前将带有 /images/ 前缀的请求映射到 /data/images 目录下的文件,使其与具有典型文件扩展名的图像请求相匹配。修改后的位置块如下所示:
# 使用正则表达式将 gif、jpg和png图片映射到 /data/images/ 目录
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
该参数是一个正则表达式,匹配所有以 .gif、.jpg 或 .png 结尾的 URI。正则表达式应以 ~ 开头。相应的请求将映射到 /data/images 目录。
当 nginx 选择一个 location 块来服务请求时,它首先检查指定前缀的 location 指令,记住具有最长前缀的 location,然后检查正则表达式。如果与正则表达式匹配,则 nginx 选择此 location,否则,它选择之前记住的 location。
代理服务器的最终配置如下所示:
server {
location / {
proxy_pass http://localhost:8080/;
}
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
}
该 server 将过滤以 .gif、.jpg 或 .png 结尾的请求,并将它们映射到 /data/images 目录(通过将 URI 添加到 root 指令的参数)并将所有其他请求传递到上面配置的代理服务器。
要应用新配置,请按照前面所述向 nginx 发送重新加载信号,即 nginx -s reload。
,