nginx绑定多个端口

有两种方法:

一、在server段写上2个Listen就可以了.

listen 192.168.0.15:808;
listen 192.168.0.15:8098;
如上,就可以同时监听2个端口了.

二、在 nginx.conf 中配置多个个server即可

user nginx nginx;

worker_processes  1;

worker_rlimit_nofile 65535;

events {
    worker_connections  4000;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    autoindex off;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'
                       '$upstream_addr $upstream_response_time $request_time ';
    access_log  logs/nginx/access.log main;

    sendfile        on;

    keepalive_timeout  65;

        upstream localhost {
        server 127.0.0.1:8080 max_fails=7 fail_timeout=7s;
    } 

    server {
        listen       808;
        server_name  localhost;
                large_client_header_buffers 4 128k;
        client_max_body_size 300m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        proxy_buffer_size 64k;
        proxy_buffers   4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;

#设定查看Nginx状态的地址
        location /nginxstatus{
            stub_status on;
            access_log on;
            auth_basic "nginxstatus";
            auth_basic_user_file htpasswd;
    }

#ftpweb
         location /ftpweb {
           index  index.html index.htm index.jsp;
           proxy_pass  http://192.168.0.16:9081/ftpweb;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header Host $host:$server_port;
        }

#Zabbixweb
         location /webzabbix/ {
           index  index.html index.htm index.jsp;
           proxy_pass  http://192.168.0.15/zabbix/;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header Host $host:$server_port;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

    server {
        listen       8098;
        server_name  localhost;
        large_client_header_buffers 4 128k;
        client_max_body_size 300m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        proxy_buffer_size 64k;
        proxy_buffers   4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;

#开放8098接口地址
         location /interserver {
           index  index.html index.htm index.jsp;
           proxy_pass  http://192.168.0.20:8812/interserver/;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header Host $host:$server_port;
        }

    }

}

这样就就可以一个nginx服务访问808和8098两个端口到不同服务的了
http://192.168.0.15:808/ftpweb
http://192.168.0.15:8098/interserver

转载于:https://blog.51cto.com/meiling/2067988

<think>好的,我现在需要解决用户关于Nginx配置多端口时的注意事项和权限问题,特别是端口8100出现的10013错误。用户之前提到过Windows系统下的权限问题,所以我要结合之前的对话和新的引用内容来组织回答。首先,用户的问题是关于配置多个端口时的注意事项,以及如何解决绑定权限的问题。我需要先整理Nginx端口配置的基本要点,比如检查端口冲突、权限设置、防火墙规则等。然后针对10013错误,这可能和Windows的权限有关,比如需要管理员权限运行,或者端口被系统保留。引用中提到了Linux下的权限解决方法,比如设置SUID位,但用户的环境是Windows,所以需要转换这些建议到Windows的对应操作,比如以管理员身份运行,或者调整防火墙设置。另外,用户之前遇到的10013错误是Windows特有的,需要解释这个错误码的含义,比如访问被拒绝,可能因为端口被占用或权限不足。还要注意用户可能希望了解如何永久解决权限问题,比如配置防火墙规则,或者修改服务的启动账户。同时,配置多个端口时,每个端口的监听指令是否正确,是否有重复,以及日志记录的位置也需要检查。需要分步骤说明,结构清晰,包括检查端口占用、管理员权限、防火墙设置、服务账户调整等。最后生成相关问题,帮助用户进一步排查可能的问题。</think>### Nginx配置多端口注意事项及权限问题解决方案 --- #### **一、多端口配置核心注意事项** 1. **端口范围选择** - 避免使用`0-1023`的**特权端口**(如80/443),在Windows/Linux系统中这些端口需要管理员权限[^2][^4] - 推荐使用`1024-49151`的**注册端口**(如8100),但需注意某些端口可能被系统服务占用[^1] 2. **配置语法规范** ```nginx server { listen 8100; # IPv4标准监听 listen [::]:8100; # IPv6监听(可选) server_name localhost; # 其他配置... } server { listen 8200; # 第二个服务配置... } ``` 每个`server`块需独立配置端口,避免重复声明[^1] 3. **端口冲突检测** Windows系统执行: ```cmd netstat -ano | findstr ":8100" ``` Linux系统执行: ```bash ss -tulnp | grep ':8100' ``` 若发现`LISTEN`状态进程,需终止占用程序或更换端口[^1] --- #### **二、权限问题解决方案(Windows环境)** 1. **管理员权限运行** - 右键点击`nginx.exe` → **以管理员身份运行** - 通过PowerShell启动: ```powershell Start-Process "nginx.exe" -Verb RunAs ``` 2. **防火墙规则配置** ```powershell New-NetFirewallRule -DisplayName "Nginx Port 8100" -Direction Inbound -LocalPort 8100 -Protocol TCP -Action Allow ``` 此命令创建永久入站规则[^3] 3. **服务账户权限** - 若以服务方式运行Nginx,需在**服务管理器**(`services.msc`)中修改服务属性: - 登录身份改为**本地系统账户** - 勾选**允许服务与桌面交互**[^4] --- #### **三、错误10013专项处理** `10013: An attempt was made to access a socket...`表示**系统级权限拦截**,按优先级排查: 1. **端口保留检测** Windows系统执行: ```cmd netsh int ipv4 show excludedportrange protocol=tcp ``` 若8100在保留范围内,需通过注册表修改或更换端口 2. **HTTP.sys冲突** 某些应用(如IIS、Docker)会通过HTTP.sys占用端口: ```cmd netsh http show servicestate | findstr "8100" ``` 若存在记录,需调整相关服务配置 3. **安全软件拦截** 临时关闭360安全卫士、Windows Defender防火墙测试,若问题消失则需添加白名单 --- #### **四、多端口配置验证流程** 1. 分阶段重启测试: ```cmd nginx -t # 检查配置语法 nginx -s reload # 分段加载配置 ``` 2. 查看详细错误日志: ```cmd type E:\nginx-1.28.0\logs\error.log | findstr "emerg" ``` 3. 使用`telnet`测试端口可达性: ```cmd telnet 127.0.0.1 8100 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值