📜  NGINX最低配置(1)

📅  最后修改于: 2023-12-03 15:03:10.900000             🧑  作者: Mango

NGINX最低配置

NGINX是一款高性能的HTTP和反向代理服务器,是现代Web架构不可或缺的一部分。在本文中,我们将介绍如何最低限度地配置NGINX。

安装

为了安装NGINX,我们需要先添加NGINX存储库。在基于Debian的系统上,我们可以通过以下命令添加存储库:

sudo apt-get install curl gnupg2 ca-certificates lsb-release
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install nginx

在基于CentOS的系统上,我们可以通过以下命令添加存储库:

sudo yum install epel-release
sudo yum install nginx

安装完成后,我们就可以通过以下命令启动NGINX:

sudo systemctl start nginx

现在,我们已经成功安装了NGINX并启动了它,接下来我们可以看一下如何进行最低限度的配置。

配置

NGINX的配置文件位于/etc/nginx/nginx.conf。我们可以使用以下命令打开该文件进行编辑:

sudo nano /etc/nginx/nginx.conf
1. 配置服务器块

最基本的配置是定义一个server块,用来告诉NGINX监听哪个端口并将请求转发到哪个后端:

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

上面的配置告诉NGINX监听80端口,并将所有请求转发到名为backend的后端。server_name选项告诉NGINX哪个域名应该匹配这个server块。location块用于定义请求应该如何处理。在这个例子中,我们使用了代理(proxy_pass)将请求转发到后端。proxy_set_header选项用于设置HTTP请求头。

2. 配置静态文件

如果我们希望使用NGINX提供静态文件服务,我们需要在server块中添加一个新的location块:

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }

        location /static/ {
            alias /path/to/static/files/;
        }
    }
}

上述配置告诉NGINX在匹配到/static/路径时,使用alias选项将请求映射到本地路径/path/to/static/files/

3. 配置SSL

要启用SSL,我们需要添加一个server块来监听443端口(HTTPS默认端口),并配置证书文件:

http {
    server {
        listen 80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }

    server {
        listen 443 ssl;
        server_name example.com;

        ssl_certificate /path/to/cert.pem;
        ssl_certificate_key /path/to/key.pem;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }

        location /static/ {
            alias /path/to/static/files/;
        }
    }
}

最后,我们必须重启NGINX以使配置生效:

sudo systemctl restart nginx

现在,我们已经成功配置了NGINX,并且可以使用它来提供HTTP和HTTPS服务以及静态文件服务。更多高级配置和功能可以在NGINX官方文档中找到。