📅  最后修改于: 2023-12-03 15:03:10.900000             🧑  作者: Mango
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
最基本的配置是定义一个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请求头。
如果我们希望使用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/
。
要启用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官方文档中找到。