51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

nginx监听多个端口

NGINX监听多个端口

要实现NGINX监听多个端口,需要修改其配置文件。默认情况下,NGINX监听80端口(HTTP协议)和443端口(HTTPS协议),故只需要在配置文件中增加相应的监听端口即可。 NGINX提供了两种配置方式,一种是在同一个server块中直接定义多个监听端口,另一种是通过多个server块实现监听不同端口。以下是两种方式的示例。

1. 在同一server块中监听多个端口

http {
    server {
        listen 80;
        listen 8080;
        listen [::]:80;
        listen [::]:8080;
        server_name example.com;

        root /var/www;
        index index.html;
    }
}

上述代码通过在同一个server块中定义了监听80和8080端口(同时支持IPv4和IPv6协议),并指定了服务器名称、网站根目录和默认首页。这样配置后,用户可以通过访问"http://example.com"或"http://example.com:8080"来访问该网站。若想监听更多端口,只需添加listen指令即可

2. 在多个server块中监听不同端口

http {
    server {
        listen 80;
        server_name example.com;
        root /var/www;
        index index.html;
    }

    server {
        listen 8080;
        server_name example.com;
        root /var/www2;
        index index2.html;
    }
}

上述代码通过在不同的server块中定义了监听80和8080端口,同时配置了不同的网站根目录和默认首页。这样配置后,用户可以通过访问"http://example.com"或"http://example.com:8080"来访问不同的网站。

二、高级配置 {#title-2}

1. 使用域名别名

当一个域名被多次重复使用且需要提供不同服务时,可以使用域名别名来避免重复配置。以下是示例代码。

http {
    server {
        listen 80;
        server_name example.com www.example.com;
        root /var/www;
        index index.html;
    }

    server {
        listen 8080;
        server_name test.example.com;
        root /var/www2;
        index index2.html;
    }
}

上述代码通过在不同的server块中使用相同的"server_name"参数,以提供同一域名的不同服务。

2. 使用SSL加密

在某些情况下,为了保证访问安全性,需要使用SSL加密。以下是示例代码。

http {
    server {
        listen 80;
        server_name example.com;
        return 301 https://$server_name$request_uri;
    }

    server {
        listen 443 ssl;
        server_name example.com;

        ssl_certificate /path/to/cert.crt;
        ssl_certificate_key /path/to/cert.key;

        #其他SSL配置
    }
}

上述代码演示了如何使用SSL加密来保护访问。当用户访问"http://example.com"时,会被重定向到HTTPS协议上的443端口,从而进行加密访问。需要注意的是,此配置需要使用相应的SSL证书和密钥。

3. 使用IP限制

为了增强服务器的安全性,可以通过IP限制来控制访问。以下是示例代码。

http {
    server {
        listen 80;
        server_name example.com;
        deny 192.168.1.1;
        allow all;
        root /var/www;
        index index.html;
    }
}

上述代码演示了如何通过deny和allow参数来控制IP访问。在上述示例中,192.168.1.1被屏蔽,其他IP地址可以正常访问。

赞(7)
未经允许不得转载:工具盒子 » nginx监听多个端口