已编辑 3 几周前 通过 ExtremeHow 编辑团队
DebianNginx网络服务器网络开发服务器设置Linux系统管理开源命令行界面信息技术
翻译更新 3 几周前
Nginx是一种广泛使用的网络服务器软件,以其高性能、稳定性、低资源消耗和简单配置而闻名。在本详细指南中,我们将看到如何在Debian操作系统上使用Nginx设置网络服务器。在我们开始操作步骤之前,了解Nginx是什么以及为什么它对网络服务器配置有益是很重要的。
Nginx(发音为“engine-x”)是一种开源软件,用于网络服务、反向代理、缓存、负载均衡、媒体流等。它最初是一个用来解决C10k问题,即同时处理一万个连接的项目。如今,Nginx因其在高负载管理上的性能和效率而广受欢迎。它可以作为HTTP、HTTPS、SMTP、POP3和IMAP协议的反向代理服务器、负载均衡器和HTTP缓存等使用。作为开源软件,它是免费的,并且全球贡献者不断改进它。
在开始之前,请确保您具备以下条件:
sudo
权限的用户身份访问服务器。一旦满足这些先决条件,您就可以继续在Debian服务器上安装和配置Nginx。
第一步是确保服务器更新为最新的软件包。更新系统可以减少不兼容问题并提高安全性。使用以下命令更新服务器:
sudo apt update sudo apt upgrade
apt update
命令刷新软件包及其可用版本的列表。apt upgrade
命令用新版本升级旧的软件包。
Debian的APT包管理器使得安装软件包(如Nginx)变得简单。执行以下命令安装Nginx:
sudo apt install nginx
该命令将获取并安装Nginx包及其依赖项。安装完成后,Nginx将自动开始运行。
安装Nginx后,有必要验证其安装并确保其正常运行。使用以下命令检查Nginx的状态:
sudo systemctl status nginx
期望的输出表明Nginx处于活动状态并正在运行。如果想启动或停止Nginx服务,可以使用:
sudo systemctl start nginx sudo systemctl stop nginx
确认Nginx正在运行后,打开浏览器并查找服务器的IP地址。如果不知道服务器的IP地址,可以这样找到:
hostname -I
在浏览器地址栏输入服务器的IP地址时,应看到默认的Nginx欢迎页面。这验证了Nginx正正确呈现网页。
在Debian系统上,UFW(简单防火墙)常用于防火墙管理软件。如果UFW正在服务器上运行,则必须允许HTTP流量通过防火墙公开访问您的网络服务器。可以按以下方式检查UFW的当前状态:
sudo ufw status
如果UFW被激活,使用此命令允许Nginx HTTP流量:
sudo ufw allow 'Nginx HTTP'
仔细检查情况以确保应用了相关规则:
sudo ufw status
Nginx作为后台服务运行。可以使用systemctl命令来管理此服务。以下是管理Nginx的一些有用的systemctl命令:
sudo systemctl start nginx
:启动Nginx服务。sudo systemctl stop nginx
:停止Nginx服务。sudo systemctl restart nginx
:重启Nginx服务。在更改配置文件或者解决小问题后使用。sudo systemctl reload nginx
:不丢失连接的情况下重启Nginx。在不打断用户的情况下应用更改时很有用。sudo systemctl enable nginx
:设置Nginx在启动时自动启动。sudo systemctl disable nginx
:防止Nginx在启动时自动启动。Nginx配置文件通常位于/etc/nginx
目录中。主配置文件是/etc/nginx/nginx.conf
,其中包含用于管理模块、设置用户权限等的说明。
通常,虚拟主机配置单独管理在/etc/nginx/sites-available
目录中。该目录包含单个域的配置文件,这些文件通过符号链接到/etc/nginx/sites-enabled
以便激活。您还可以在/etc/nginx/snippets
中找到可重复使用设置的配置片段。
服务器块,相当于Apache的虚拟主机,允许Nginx在单个服务器上运行多个站点。首先,进入/etc/nginx/sites-available/
并创建一个新的配置文件:
sudo nano /etc/nginx/sites-available/example.com
在下面的配置文件中,将“example.com”替换为您的域名:
server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
有了这个设置,对“example.com”的请求将被代理到运行在127.0.0.1:8080的应用程序。根据您的需要使用合理的默认值或调整配置。
在site-enabled
中为配置文件创建一个符号链接:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
这个动作启用了您的服务器块。测试新配置以检测可能的错误:
sudo nginx -t
如果没有错误,重启Nginx以应用更改:
sudo systemctl restart nginx
可以通过创建一个基本的静态HTML文件来测试设置。创建一个将作为您的网页根目录的新目录:
sudo mkdir -p /var/www/example.com/html
设置适当的权限:
sudo chown -R $USER:$USER /var/www/example.com/html
创建一个简单的HTML文件:
nano /var/www/example.com/html/index.html
将以下内容添加到index.html
:
<!DOCTYPE html> <html> <head> <title>Welcome</title> </head> <body> <h1>Welcome to example.com!</h1> </body> </html>
转到http://your_server_ip
或http://example.com
查看您的网页。
为了保护您的网络服务器,推荐为站点实施SSL/TLS证书。可以从Let's Encrypt获取免费的SSL证书,它是一个提供免费证书和自动化支持的证书授权机构。
安装用于SSL证书检索和安装的Certbot工具和Nginx插件:
sudo apt install certbot python3-certbot-nginx
接下来,使用Certbot请求证书:
sudo certbot --nginx
Certbot会提示输入必要的信息,如您的域名和电子邮件。成功完成后,Certbot会自动重新加载Nginx。访问https://example.com
以确认具有挂锁图标的安全HTTPS连接。
Certbot设置了一个systemd任务来自动处理SSL证书续期。也可以执行手动续期检查:
sudo certbot renew --dry-run
检查升级并确保其成功且无错误。
一旦配置完成Nginx,您现在就可以托管和服务各种网站。记住监控服务器性能、管理日志,并保持Nginx和服务器包的更新以维护安全和效率。Nginx网络服务器是一种适合许多网络任务和架构需求的强大工具。
在Debian上使用Nginx设置网络服务器涉及定义配置、添加服务器块和通过SSL确保安全。了解Nginx安装、配置和管理的基础知识为更复杂的应用和服务部署奠定了基础。您现在应该已经准备好运行并能够高效地提供页面或应用程序的网络服务器。
如果你发现文章内容有误, 您可以