nginx使用默认端口80作为服务端口

2025-12-07 20:56:25 4574

背景:http默认端口是80,配置nignx.conf,希望服务url直接输入ip不用输入端口

给server配置80以及加default_server ,老是报错,后面发现是因为 include /etc/nginx/sites-enabled/*; 这个配置的server段占用了80

解决办法:把默认配置/etc/nginx/sites-available/default 里的server段注释掉

在 Nginx 的配置体系中,/etc/nginx/sites-available/和 /etc/nginx/sites-enabled/是两个关键目录,用于管理虚拟主机(站点)配置。它们的用途和区别如下:

​​1. /etc/nginx/sites-available/​​

​​作用​​:存储 ​​所有可用的站点配置文件​​(如 example.com.conf、default)。

​​特点​​:

这里是存放配置文件的“仓库”,​​文件本身不会自动生效​​。

可以在此目录中创建、编辑或备份配置,但需手动启用才会被 Nginx 加载。

​​示例​​:

/etc/nginx/sites-available/

├── default # 默认站点配置

├── example.com.conf # 自定义站点配置

└── backup.conf # 备份配置(未启用)

​​2. /etc/nginx/sites-enabled/​​

​​作用​​:存储 ​​当前已启用的站点配置​​(通过符号链接指向 sites-available中的文件)。

​​特点​​:

只有此目录中的配置才会被 Nginx 实际加载。

文件通常是 sites-available中配置的 ​​符号链接​​(软链接)。

​​示例​​:

/etc/nginx/sites-enabled/

├── default -> /etc/nginx/sites-available/default # 已启用的默认配置

└── example.com.conf -> /etc/nginx/sites-available/example.com.conf # 已启用的自定义配置

​​3. 两个目录的协作关系​​

​​启用站点​​:

将 sites-available中的配置链接到 sites-enabled:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

​​禁用站点​​:

删除 sites-enabled中的符号链接(​​不删除原始文件​​):

sudo rm /etc/nginx/sites-enabled/example.com.conf

​​查看已启用的站点​​:

ls -l /etc/nginx/sites-enabled/

​​4. 为什么这样设计?​​

​​安全性​​:

直接修改 sites-enabled可能导致误删配置。

sites-available保留原始文件,方便恢复或调试。

​​灵活性​​:

快速启用/禁用站点(如临时关闭维护页面)。

​​版本控制​​:

可在 sites-available中保留多个版本的配置,按需切换。

​​5. Nginx 如何加载这些配置?​​

Nginx 主配置文件(/etc/nginx/nginx.conf)中通常包含以下指令,自动加载 sites-enabled中的配置:

http {

include /etc/nginx/sites-enabled/*; # 加载所有已启用的站点

}

​​6. 最佳实践​​

​​新增站点​​:

在 sites-available中创建配置:

sudo nano /etc/nginx/sites-available/example.com.conf

创建符号链接启用:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

测试并重载:

sudo nginx -t && sudo systemctl reload nginx

​​禁用站点​​:

sudo rm /etc/nginx/sites-enabled/example.com.conf

sudo systemctl reload nginx

​​7. 常见问题​​

​​Q1: 可以直接在 sites-enabled中编辑文件吗?​​

​​不推荐​​!因为它们是符号链接,直接修改会改变原始文件(sites-available中的内容)。建议始终编辑 sites-available中的文件。

​​Q2: 如果删除了 sites-available中的文件会怎样?​​

sites-enabled中的符号链接将失效(变成“悬空链接”),Nginx 会报错。恢复方法:

sudo cp /backup/example.com.conf /etc/nginx/sites-available/ # 从备份恢复

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

​​Q3: 能否自定义这两个目录的路径?​​

可以!需修改 Nginx 主配置文件中的 include指令路径,但一般不建议更改。

​​总结​​

目录

用途

操作命令示例

sites-available/

存储所有可用配置(不自动生效)

sudo nano /etc/nginx/sites-available/example.conf

sites-enabled/

存储已启用的配置(符号链接)

sudo ln -s ../sites-available/example.conf

​​协作关系​​

通过符号链接管理启用/禁用

sudo rm /etc/nginx/sites-enabled/example.conf

通过这种设计,Nginx 实现了灵活的站点管理,避免直接操作生效配置的风险。