配置nginx.conf (增加21001端口实例操作)
创建独立的配置文件来实现增加端口
具体操作步骤:
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