nginx静态网站部署配置高级
背景:
在刚开始使用nginx部署静态网站时,我对nginx中的多个配置文件——nginx.d,nginx.conf,sites-available/* 的作用和概念搞不清楚,不太明白他们是怎么工作的,经过几天跟gpt的问答学习,逐渐梳理出来了一些关键问题,有助于新手搞清楚nginx的配置文件脉络,在这里分享给大家。
问答:
Q1: nginx配置文件有哪些 ?
Nginx的配置文件通常包括以下几个主要部分:
nginx.conf:这是Nginx的主配置文件,包含全局配置指令,比如worker_processes(工作进程数)、events(事件模块配置)等,可以理解为项目开发中的main函数,即入口配置文件
sites-available目录:这个目录通常包含所有可用的网站配置文件。每个配置文件对应一个网站的配置。这个目录下有一个默认的default配置文件,是nginx为我们提供的配置模版,在新增配置时,推荐以复制该模版然后进行修改的方式来新增配置。
sites-enabled目录:这个目录包含了实际生效的网站配置文件的符号链接。Nginx默认加载这个目录中的配置文件。
conf.d目录:这个目录包含了一些额外的配置文件,通常用于组织一些特定的配置片段,比如SSL配置、代理配置等。
Q2: 在sites-available目录中新增了一个配置文件,怎么让其生效?
要让sites-available目录中新建的配置文件生效,需要创建一个符号链接到/etc/nginx/sites-enabled目录中。这样做可以启用你的新配置文件。
使用以下命令来创建符号链接:
1 | sudo ln -s /etc/nginx/sites-available/your_config_file /etc/nginx/sites-enabled/ |
在这个命令中,your_config_file是你在sites-available目录中新建的配置文件的名称。创建了符号链接后,重新加载Nginx配置文件,使得新的配置生效:
1 | sudo systemctl reload nginx |
这样新的配置文件就会生效了
Q3: 怎样禁用sites-available目录中的某个配置文件?
要禁用sites-available目录中的某个配置文件,你可以通过删除该配置文件在sites-enabled目录中的符号链接来实现。以下是具体的步骤:
- 进入sites-enabled目录:
1 | cd /etc/nginx/sites-enabled |
- 删除指向要禁用的配置文件的符号链接:
1 | sudo rm your_config_file |
其中your_config_file是你要禁用的配置文件的名称。
Q4: 在sites-enabled中的blog符号链接是黑底粉红色的,这代表什么意思?
在Linux系统中,黑底粉红色的符号链接表示该符号链接指向的原始文件或目录不存在。这会导致nginx启动配置文件失败。
Q5: 修改nginx配置文件后,是否需要重启nginx,怎么重启 ?
修改nginx配置文件后,通常需要重新加载nginx以使更改生效,而不是重启整个nginx服务。重新加载nginx会应用新的配置,而不中断正在处理的连接。
要重新加载nginx配置文件,你可以使用以下命令:
1 | sudo systemctl reload nginx |
这会重新加载nginx的配置文件,使得任何修改都会立即生效,而不需要重启整个nginx服务。