Nginx中实现通过多个域名访问默认80端口之外的任意端口服务【测试成功】

艺帆风顺 发布于 2025-04-03 29 次阅读


一、需求背景

    某服务器上部署了nginx,需要绑定多个域名,不需要加端口。

    比如:

    通过sec.xxx.cn实现访问服务器的8790端口;

    通过mt.xxx.cn访问服务器的8166端口;

    通过yun.xxx.cn访问服务器的45606端口。

二、Nginx服务端配置

查看nginx主配置文件:

    [root@YLMS nginx]# cat nginx.conf
    worker_processes 2;
    error_log /docker/server/xxx/log/error.log warn;# pid logs/nginx.pid;events { worker_connections 1024;}
    http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; include /docker/server/xxx/conf/mt.conf; include /docker/server/domain.conf; proxy_connect_timeout 100s; fastcgi_send_timeout 300; fastcgi_read_timeout 300; proxy_send_timeout 600s; proxy_read_timeout 600s; send_timeout 600; client_max_body_size 100M; gzip on; gzip_buffers 32 4K; gzip_comp_level 6; gzip_min_length 1024; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml; gzip_vary on;
    }

    配置80端口请求转发不同域名:

    vim /docker/server/domain.conf

      server {
      listen 80;
      proxy_set_header X-Real-IP $remote_addr;
      server_name mt.xxx.cn;
      location / { proxy_pass http://127.0.0.1:8166; }}server { listen 80;
      proxy_set_header X-Real-IP $remote_addr;
      server_name sec.xxx.cn;
      location / { proxy_pass http://127.0.0.1:8790; }}
      server { listen 80;
      proxy_set_header X-Real-IP $remote_addr;
      server_name yun.xxx.cn;
      location / { proxy_pass http://127.0.0.1:45606; }}

      三、重载验证效果

      可以发现已经通过不同域名,访问到了服务器的对应服务。