创建独立的配置文件来实现增加端口
具体操作步骤:

1. 找到主配置文件 nginx.conf

# 通常位于以下路径之一
/usr/local/nginx/conf/nginx.conf
/etc/nginx/nginx.conf
/usr/local/etc/nginx/nginx.conf

# 查看您的nginx配置文件路径
/usr/local/nginx/sbin/nginx -t

2. 编辑主配置文件

sudo vi /usr/local/nginx/conf/nginx.conf

3. 在 http 块中添加 include 指令

找到 http { … } 块,在里面添加 include 语句:

http {
    # 其他现有配置...
    include       mime.types;
    default_type  application/octet-stream;
    
    # 日志格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    
    access_log  logs/access.log  main;
    sendfile    on;
    keepalive_timeout  65;
    
    # 包含其他配置文件 - 就是这里!
    include conf.d/*.conf;           # 包含conf.d目录下的所有.conf文件
    include sites-enabled/*.conf;    # 包含sites-enabled目录下的所有.conf文件
    
    # 可以继续添加其他include
    # include vhosts/*.conf;
    
    # 其他配置...
}

4. 创建配置目录

# 创建配置目录
sudo mkdir -p /usr/local/nginx/conf/conf.d
sudo mkdir -p /usr/local/nginx/conf/sites-enabled

# 设置权限(如果需要)
sudo chmod 755 /usr/local/nginx/conf/conf.d
sudo chmod 755 /usr/local/nginx/conf/sites-enabled

5. 创建子配置文件

现在您可以在这些目录中创建独立的配置文件:

# 在 conf.d 目录创建21001端口的配置
sudo vi /usr/local/nginx/conf/conf.d/21001.conf

# 或者在 sites-enabled 目录创建
sudo vi /usr/local/nginx/conf/sites-enabled/21001.conf

6. 完整的配置示例

主配置文件 (/usr/local/nginx/conf/nginx.conf):

user  nobody;
worker_processes  1;

error_log  logs/error.log;
pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    
    access_log  logs/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    
    # 包含子配置文件
    include conf.d/*.conf;
    include sites-enabled/*.conf;
    
    # 默认服务器配置(可选)
    server {
        listen       80;
        server_name  _;
        return       404;
    }
}

子配置文件 (/usr/local/nginx/conf/conf.d/21001.conf):

# 21001 端口服务配置
server {
    listen 21001;
    server_name localhost;
    
    # 字符集设置
    charset utf-8;
    
    # 日志配置
    access_log /usr/local/nginx/logs/21001_access.log main;
    error_log /usr/local/nginx/logs/21001_error.log warn;
    
    # 根路径配置
    location / {
        root /usr/local/nginx/html/21001;
        index index.html index.htm;
        
        # 启用目录列表(可选)
        # autoindex on;
    }
    
    # 健康检查端点
    location /health {
        access_log off;
        return 200 "healthy\n";
        add_header Content-Type text/plain;
    }
    
    # 静态文件缓存配置
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 7d;
        add_header Cache-Control "public, immutable";
    }
    
    # 禁止访问隐藏文件
    location ~ /\. {
        deny all;
    }
    
    # 错误页面配置
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
}

7. 验证配置

# 检查配置文件语法
sudo /usr/local/nginx/sbin/nginx -t

# 如果语法正确,重新加载配置
sudo /usr/local/nginx/sbin/nginx -s reload

# 或者重启nginx
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx

include 指令的优势:
1.模块化管理:每个服务/端口一个配置文件,便于维护
2.易于备份:可以单独备份某个服务的配置
3.快速启用/禁用:重命名或移动文件即可禁用服务
4.团队协作:不同的人可以负责不同的配置文件

其他常用的 include 位置:

http {
    # 包含通用配置
    include conf.d/common/*.conf;
    
    # 包含虚拟主机配置
    include vhosts/*.conf;
    
    # 包含SSL配置
    include ssl/*.conf;
    
    # 包含上游服务器配置
    include upstream/*.conf;
    
    # 包含位置块配置
    include locations/*.conf;
}

这样配置后,您只需要在相应的目录中创建 .conf 文件,nginx 就会自动加载这些配置。

8. 测试端口访问

# 检查端口是否监听
netstat -tlnp | grep 21001
# 或
ss -tlnp | grep 21001

# 测试访问
curl http://localhost:21001
curl -I http://localhost:21001
# 或者使用浏览器访问
# http://your-server-ip:21001

9. 防火墙配置

# 如果使用firewalld
sudo firewall-cmd --permanent --add-port=21001/tcp
sudo firewall-cmd --reload

# 如果使用iptables
sudo iptables -A INPUT -p tcp --dport 21001 -j ACCEPT
sudo service iptables save

# 检查防火墙状态
sudo firewall-cmd --list-ports

10. 故障排除

# 查看错误日志
tail -f /usr/local/nginx/logs/error.log
tail -f /usr/local/nginx/logs/21001_error.log

# 检查进程
ps aux | grep nginx

# 检查端口占用
lsof -i :21001
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐