介绍Nginx是世界上最受欢迎的网络服务器之一,负责托管互联网上一些规模最大,流量最高的网站。在大多数情况下,它比Apache更具资源友好性,可以用作Web服务器或反向代理。 在本教程中,我们将讨论如何在Debian 9服务器上安装Nginx。 准备在开始本教程之前,您应该有一个在服务器上配置了sudo权限的常规非root用户和一个活动防火墙。您可以按照Debian 9的初始服务器设置教程了解如何设置它们。 没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。 如果您有可用的帐户,请以非root用户身份登录以开始。 第1步 - 安装Nginx因为Nginx在Debian的默认存储库中可用,所以可以使用 由于这是我们在此会话中与 sudo apt update sudo apt install nginx 接受该过程后, 第2步 - 调整防火墙在测试Nginx之前,需要调整防火墙软件以允许访问服务。 通过键入以下内容列出 sudo ufw app list 您应该获得应用程序配置文件的列表: Available applications: ... Nginx Full Nginx HTTP Nginx HTTPS ... 如您所见,Nginx有三种配置文件:
建议您启用限制性最强的配置文件,该配置文件仍允许您配置的流量。由于我们尚未在本教程中为我们的服务器配置SSL,因此我们只需要允许端口 您可以输入以下命令启用此功能 sudo ufw allow 'Nginx HTTP' 您可以键入以下内容来验证更改: sudo ufw status 您应该在显示的输出中看到允许的HTTP流量: Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6) 第3步 - 检查Web服务器在安装过程结束时,Debian 9启动了Nginx。Web服务器应该已经启动并运行。 我们可以通过键入以下内容来检查 systemctl status nginx ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2018-09-04 18:15:57 UTC; 3min 28s ago Docs: man:nginx(8) Process: 2402 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 2399 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 2404 (nginx) Tasks: 2 (limit: 4915) CGroup: /system.slice/nginx.service ├─2404 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─2405 nginx: worker process 如您所见,该服务似乎已成功启动。但是,测试它的最佳方法是从Nginx实际请求页面。 您可以通过导航到服务器的IP地址来访问默认的Nginx登录页面以确认软件正常运行。如果您不知道服务器的IP地址,请尝试在服务器的命令提示符下键入: ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' 你会得到几行。您可以在Web浏览器中依次尝试以查看它们是否有效。 获得服务器的IP地址后,将其输入浏览器的地址栏: http://your_server_ip 您应该会看到默认的Nginx登录页面: 此页面包含在Nginx中,以向您显示服务器正在正常运行。 第4步 - 管理Nginx进程现在您已启动并运行Web服务器,让我们回顾一些基本的管理命令。 要停止Web服务器,请键入: sudo systemctl stop nginx 要在Web服务器停止时启动它,请键入: sudo systemctl start nginx 要停止然后再次启动该服务,请键入: sudo systemctl restart nginx 如果您只是进行配置更改,Nginx通常可以在不丢弃连接的情况下重新加载。为此,请键入: sudo systemctl reload nginx 默认情况下,Nginx配置为在服务器引导时自动启动。如果这不是您想要的,您可以通过键入以下内容来禁用此行为: sudo systemctl disable nginx 要重新启用服务以在启动时启动,您可以键入: sudo systemctl enable nginx 第5步 - 设置服务器块使用Nginx Web服务器时,服务器块(类似于Apache中的虚拟主机)可用于封装配置详细信息并从单个服务器托管多个域。我们将设置一个名为的域名,但您应将其替换为您自己的域名。 Debian 9上的Nginx默认启用一个服务器块,配置为从 按如下所示为创建目录,使用 sudo mkdir -p /var/www//html 接下来,使用 sudo chown -R $USER:$USER /var/www//html 如果您尚未修改您的 sudo chmod -R 755 /var/www/ 接下来,使用网页 nano /var/www//html/index.html 在里面,添加以下示例HTML: <html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The server block is working!</h1> </body> </html> 完成后保存并关闭文件。 为了让Nginx提供此内容,必须使用正确的指令创建服务器块。不要直接修改默认配置文件,而是在 sudo nano /etc/nginx/sites-available/ 粘贴在以下配置块中,类似于默认配置块,但为我们的新目录和域名更新: server { listen 80; listen [::]:80; root /var/www//html; index index.html index.htm index.nginx-debian.html; server_name www.; location / { try_files $uri $uri/ =404; } } 请注意,我们已将 接下来,让我们通过创建从 sudo ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/ 现在启用了两个服务器块,并将其配置为根据请求
为避免添加其他服务器名称可能导致的哈希桶内存问题,需要调整 sudo nano /etc/nginx/nginx.conf 找到 ... http { ... server_names_hash_bucket_size 64; ... } ... 完成后保存并关闭文件。 接下来,测试以确保您的任何Nginx文件中没有语法错误: sudo nginx -t 如果没有任何问题,您将看到以下输出: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 配置测试通过后,重新启动Nginx以启用更改: sudo systemctl restart nginx Nginx现在应该为您的域名服务。你可以通过导航到 第6步 - 熟悉重要的Nginx文件和目录既然您已经知道如何管理Nginx服务本身,那么您应该花几分钟时间熟悉一些重要的目录和文件。 内容
服务器配置
服务器日志
结论现在您已安装了Web服务器,您可以选择多种类型的内容,以及可用于为用户创建更丰富体验的技术。 想要了解更多关于安装Nginx的相关教程,请前往腾讯云+社区学习更多知识。
|
|