【Nginx】Nginx是

Nginx是什么?

Nginx是一种网络服务器软件。

    • webサーバー

 

    • リバースプロキシサーバー

 

    • キャッシュサーバー

 

    ロードバランサー

可以扮演上述的角色。

网页服务器的设置

在这里,我们将考虑将Nginx作为Web服务器的设置方法。

設置檔案

默认的设置文件是/etc/nginx/nginx.conf。(根据操作系统的不同,文件的位置可能会有所不同。)
你还可以把额外的设置文件放在/etc/nginx/conf.d/下面。你可以将~.conf文件放置在那里,根据应用程序或用途进行设置。这些设置文件会通过nginx.conf中的include命令进行调用和使用。

include /etc/nginx/conf.d/*.conf;

 

设置文件由指令和参数构成。

ディレクティブ パラメータ;
user nobody;

事件、HTTP、服务器、位置指令是作为上下文引用的。上下文是用{}括起来的部分。
放置在上下文外的指令属于主要上下文。

user nobody; # a directive in the 'main' context

http {

    # Configuration specific to HTTP and affecting all virtual servers

    server {
        # configuration of virtual server 1

        location /one {
            # configuration for processing URIs with '/one'
        }

        location /two {
            # configuration for processing URIs with '/two'
        }
    }

    server {
        # configuration of virtual server 2
    }
}

虚拟服务器的设置

为了处理HTTP请求,需要在配置文件中定义虚拟服务器。

http {
    server {
        listen 127.0.0.1:8080;
        # The rest of server configuration
    }
}

server指令中需要包含listen指令。这指定了Nginx要监听的IP地址和端口号。如果省略了IP地址,则监听所有IP地址。

你也可以通过设置多个server指令来定义多个虚拟服务器。

设置位置

通过设置location指令,可以根据请求URL来分别处理不同的操作。

server {
    location / {
        # URIが/に合致する場合の処理
    }

    location /images/ {
        # URIが/images/に合致する場合の処理
    }
}

Nginx会对所有location指令的参数进行URI测试,并应用匹配的指令。

在中国本土武编写一个选项:位置指令的参数可以用字符串前缀或正则表达式来描述。

location /some/path/ {
    ...
}

location ~ \.html? {
    ...
}

# /some/path/document.htmlのようなリクエストが合致する。

 

通过设置多个位置,可以根据URL将处理过程分开。

server {
    location / {
        # プロキシに処理を渡す
        proxy_pass http://www.example.com;
    }

    location /images/ {
        # 静的ファイルを提供する
        root /data;
    }
}

proxy_pass指令将请求传递给指定URL上的服务器。在上面的示例中,将所有不以”/images/”开头的URL请求转发给代理服务器。
root指令指示存在静态文件的路径。

设置错误页面

通过使用 error_page 指令,可以设置在特定错误码出现时返回的页面。在下方示例中,我们设置了当出现 404 错误时返回的页面。

error_page 404 /404.html;

 

你也可以进行重定向。

location /old/path.html {
    error_page 404 =301 http:/example.com/new/path.html;
}

当使用旧的URL进行访问时,会通过301重定向到新的URL。(301状态码告诉浏览器页面已经被移到新的位置,并自动将旧地址替换为新地址。)

变量

nginx.conf文件可以设置变量。$符号是变量的标志。

你可以定义自己的变量,但也有预定义的变量。
例如,$remote_addr代表客户端的IP地址,$uri代表当前URI的值。

总结

Nginx是一种用于网页服务器的软件。

nginx.conf是默认的配置文件,在/etc/nginx/conf.d/目录下添加自定义的配置文件。

如果要将其用作Web服务器,则需要在server指令中设置虚拟服务器,并在location指令中指定每个URL的处理方式。

 

请参考