Nginx是一个免费的开源Web服务器,用于托管各种规模的网站和应用程序。该软件以其对内存资源的低影响,高可扩展性以及可提供安全,预测性能的模块化事件驱动架构而闻名。Nginx不仅仅是一个Web服务器,还可以用作负载均衡器,HTTP缓存和反向代理。
本指南旨在为任何使用Nginx的人提供快速参考。它将介绍一些基本的服务管理命令,以及诊断和解决一些常见问题的技巧。更多的技巧访问腾讯云Nginx中文开发者手册。
如何使用本指南:
使用sudo apt-get,更新包索引,然后安装服务:
$ sudo apt-get update
$ sudo apt-get install nginx
您可以通过在命令提示符中输入以下内容来检查Nginx是否在您的计算机上运行:
$ sudo systemctl status nginx
默认情况下,Nginx配置为在服务器引导时自动启动。可以通过输入以下内容来禁用此行为:
$ sudo systemctl disable nginx
要重新启用服务,请输入:
$ sudo systemctl enable nginx
要停止已经运行的Nginx服务器:
$ sudo systemctl stop nginx
服务器停止后,您可以输入以下命令再次启动它:
$ sudo systemctl start nginx
要再次启动Nginx,请输入:
$ sudo systemctl restart nginx
您还可以在不中断连接的情况下重新加载Nginx:
$ sudo systemctl reload nginx
使用Nginx Web服务器时,服务器块(类似于Apache中的虚拟主机)用于在单个服务器上托管多个域。每个服务器块都有自己的文档根,这是Nginx在提供域内容之前必须检查的特殊目录。
下面的命令将创建一个新的文档根目录,并修改文档根目录对非root用户的所有权,然后修改/var/www/其中每个子目录的权限。
$ sudo mkdir -p /var/www/example.com/html
$ sudo chown -R $USER:$USER /var/www/example.com/html
$ find /var/www -type d -exec chmod 775 {} \;
我们可以确保文档根目录具有全局读取和执行权限,但如果您有其他需求,请使用其他值替换775。
当使用Nginx与某些程序(例如,PHP-FPM)来生成动态处理的站点时,您可能需要调整一些文件的权限以允许www-data组访问甚至所有权,特别是在其需要写入目录权限的时候。
下面的命令将创建一个新的文档根目录,修改文档根目录对www-data组的所有权,并修改/var/www其中每个子目录的权限。
$ sudo mkdir -p /var/www/example.com/html
$ sudo chown -R www-data:www-data /var/www/example.com
$ sudo find /var/www -type d -exec chmod 775 {} \;
我们可以通过创建从sites-available目录到sites-enabled目录的符号链接来启用服务器块的配置文件,Nginx将在启动时读取该链接。
请输入以下命令:
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
链接文件后,重新加载Nginx以更新更改并启用服务器块的配置文件:
$ sudo systemctl reload nginx
Nginx使用哈希表(多个组成哈希桶)来快速处理静态数据,如服务器名称或MIME类型。因此,如果您添加了多个服务器名称,则服务器名称的哈希桶的大小可能不再足够,您在进行更改时会看到server_names_hash_bucket_size错误。这可以通过调整/etc/nginx/nginx.conf文件中的单个值来解决。
要打开此配置文件,请输入:
$ sudo nano /etc/nginx/nginx.conf
在文件中,找到该server_names_hash_bucket_size指令。删除#符号以取消注释该行,并将指令的值增加下一个2的幂数:
/etc/nginx/nginx.conf
http {
. . .
server_names_hash_bucket_size 64;
. . .
}
这样做会增加Nginx服务器名称哈希表的桶大小,并允许服务处理您添加的所有服务器名称。完成后保存并关闭文件,然后重新启动Nginx以反映更改。
每当您对Nginx配置文件进行更改时,重要的是检查是否遗漏了任何语法错误。这可以通过发出以下命令来完成:
$ sudo nginx -t
如果配置文件中存在错误,则命令的输出将告诉您文件错误之处的确切位置。相反,如果您的任何nginx配置文件中没有语法错误,您将看到类似于以下内容的输出:
$ nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
$ nginx: configuration file /etc/nginx/nginx.conf test is successful
如果未发现任何错误,并且您想立即应用更改,请重新启动该服务:
$ sudo systemctl restart nginx
当您使用Nginx时,您可能会发现自己经常访问以下文件和目录:
本指南介绍了管理Nginx服务器的基本命令和方法,包括如何启动,停止和检查Nginx的状态,如何查找网站的文档根目录以及如何检查Nginx配置文件的语法。同时腾讯云专属在线实验平台提供搭建Nginx静态网站的上机实验,实验是从零开始基于 Nginx 搭建一个静态网站服务。过程会涉及到 Nginx 的安装、配置和运行。
参考文献:《Nginx Essentials: Installation and Configuration Troubleshooting》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有