nginx
主页 > 服务器 > nginx >

Nginx设置https和http同时使用同一个端口访问

2025-05-31 | 佚名 | 点击:

以下是一个同时使用 HTTP 和 HTTPS 并通过 8070 端口的配置示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

server {

    listen 8070;

    server_name your_domain.com;

 

    location / {

        root /var/www/html;

        index index.html;

    }

}

 

server {

    listen 8070 ssl;

    server_name your_domain.com;

 

    # SSL 证书和私钥的路径

    ssl_certificate /etc/nginx/ssl/nginx.crt;

    ssl_certificate_key /etc/nginx/ssl/nginx.key;

 

    # 可选:设置 SSL 协议和加密套件

    ssl_protocols TLSv1.2 TLSv1.3;

    ssl_prefer_server_ciphers on;

    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;

 

    # 可选:设置 HSTS 头,让浏览器强制使用 HTTPS

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

 

    location / {

        root /var/www/html;

        index index.html;

    }

}

在上述配置中:

第一个 server 块:

第二个 server 块:

注意事项

虽然可以在同一端口同时提供 HTTP 和 HTTPS 服务,但这种配置可能会引起混淆,并且不是一个推荐的最佳实践。通常建议将 HTTP 服务和 HTTPS 服务分别部署在不同的端口,例如 80 端口用于 HTTP,443 端口用于 HTTPS,然后使用重定向将 HTTP 请求重定向到 HTTPS 以确保安全。以下是一个将 80 端口的 HTTP 请求重定向到 443 端口的 HTTPS 的示例:

1

2

3

4

5

server {

    listen 80;

    server_name your_domain.com;

    return 301 https://$host$request_uri;

}

原文链接:
相关文章
最新更新