Nginx配置SSL和WSS步骤介绍

下面是 Nginx 配置 SSL 和 WSS 的完整攻略。同时提供两个示例说明。

1. 生成 SSL 证书

生成 SSL 证书是配置 HTTPS 的第一步。可以使用 OpenSSL 工具生成自签名的证书,或者购买证书。

1.1 自签名的证书

使用 OpenSSL 工具生成自签名的 SSL 证书:

# 生成私钥
openssl genrsa -out server.key 2048

# 生成证书签名请求(CSR)文件
openssl req -new -key server.key -out server.csr

# 签发证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

这样就得到了一个新的自签名的 SSL 证书,包括私钥文件 server.key 和证书文件 server.crt

1.2 购买证书

如果需要购买 SSL 证书,则需要到可信的证书颁发机构购买。

2. 配置 HTTPS

有了 SSL 证书之后,就可以在 Nginx 上开启 HTTPS 了。

2.1 修改 Nginx 配置文件

在 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name example.com;

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

    ...
}

其中:

  • listen 443 ssl; 表示监听 443 端口,并启用 SSL。
  • server_name 指定域名。
  • ssl_certificatessl_certificate_key 分别指定证书文件和私钥文件的路径。

2.2 重启 Nginx

修改完 Nginx 配置文件后,需要重启 Nginx 生效。

sudo systemctl restart nginx

3. 配置 WSS

WSS(WebSocket Secure)是 WebSocket 的加密版。使用 WSS 时,需要开启 HTTPS,并在 Nginx 中配置反向代理。

3.1 修改 Nginx 配置文件

在 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name example.com;

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

    # 配置 WebSocket 反向代理
    location /ws/ {
        proxy_pass http://localhost:3000/ws/;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    ...
}

其中:

  • location /ws/ 表示将客户端的 WebSocket 连接路径重定向到本地的 WebSocket 服务端口上。
  • proxy_pass 指定代理请求的目标地址。
  • proxy_http_version 指定使用的 HTTP 协议版本。
  • proxy_set_header 设置代理请求中的头部信息。

3.2 重启 Nginx

修改完 Nginx 配置文件后,需要重启 Nginx 生效。

sudo systemctl restart nginx

4. 示例说明

4.1 配置 HTTPS

假设现在有一个网站域名为 example.com,并且在服务器上已经安装了 Nginx。

首先,根据第一步的教程,生成自签名的 SSL 证书。

接着,在 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

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

其中:

  • listen 443 ssl; 表示监听 443 端口,并启用 SSL。
  • server_name 指定域名。
  • ssl_certificatessl_certificate_key 分别指定证书文件和私钥文件的路径。
  • location / 指定静态文件的访问路径和跟目录。

最后,重启 Nginx。

sudo systemctl restart nginx

4.2 配置 WSS

假设现在有一个 WebSocket 服务应用,监听的端口为 3000。需要将 WebSocket 连接的路径 /ws/ 映射到 Nginx 服务器上。

首先,根据第一步的教程,生成自签名的 SSL 证书。

接着,在 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location /ws/ {
        proxy_pass http://localhost:3000/ws/;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

其中:

  • listen 443 ssl; 表示监听 443 端口,并启用 SSL。
  • server_name 指定域名。
  • ssl_certificatessl_certificate_key 分别指定证书文件和私钥文件的路径。
  • location /ws/ 指定代理 WebSocket 连接的路径和目标地址。
  • proxy_http_version 指定使用的 HTTP 协议版本。
  • proxy_set_header 设置代理请求中的头部信息。

最后,重启 Nginx。

sudo systemctl restart nginx

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx配置SSL和WSS步骤介绍 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Nginx 域名转发的实现

    Nginx 域名转发是通过 Nginx 的反向代理功能实现的。反向代理是指 Nginx 接受客户端的请求,然后将请求转发给不同的服务器处理。在 Nginx 中,反向代理通常使用 proxy_pass 指令进行配置。 为了实现域名转发,我们需要先配置 DNS,将域名指向 Nginx 服务器的 IP 地址。然后在 Nginx 配置文件中添加 server 块,用…

    Nginx 2023年5月16日
    00
  • Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器

    下面我来详细讲解Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器的完整攻略,这个过程包含如下两条示例说明: 示例一:Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器 安装CentOS 5.4 首先,在服务器上安装Ce…

    Nginx 2023年5月16日
    00
  • 在nginx上面部署多个项目

    在网上搜了一下,一般有两种方法,第一种方法:在一个配置文件里面操作,把多个域名写在一个配置文件里面,第二种方法:一个域名对应一个配置文件,我是按照第二种方法操作的。比如在一个服务器上面,需要配置的域名为:www.ceshi1.com,www.ceshi2.com,操作步骤为: 1:在/etc/nginx/下面建立文件夹vhosts 2:在/etc/nginx…

    Nginx 2023年4月15日
    00
  • 2、Nginx 是如何实现并发的?为什么 Nginx 不使用多线程?Nginx常见的优化手段有哪些?502错误可能原因有哪些?

    异步,非阻塞,使用了epoll 和大量的底层代码优化。 如果一个server采用一个进程负责一个request的方式,那么进程数就是并发数。正常情况下,会有很多进程一直在等待中。 而nginx采用一个master进程,多个woker进程的模式。 master进程主要负责收集、分发请求。每当一个请求过来时,master就拉起一个worker进程负责处理这个请求…

    2023年4月10日
    00
  • Vue-cli3.0打包部署到Nginx

      Vue-cli3.0相比于Vue-cli2.0,仅从根目录来看,最大的区别就是Vue-cli3.0少了build和config文件夹,前者用于项目构建(webpack)相关代码,后者用于项目开发环境配置。取而代之的是vue.config.js这个文件,看起来目录简洁不少。      图1 vue-cli3.0根目录 打开vue.config.js文件,大…

    Nginx 2023年4月13日
    00
  • 使用Nginx搭载rtmp直播服务器的方法

    下面是使用Nginx搭载rtmp直播服务器的完整攻略,包括两个示例说明。 简介 Nginx是一款高性能的服务器软件,它不仅可以作为静态资源的Web服务器,还可以搭载rtmp直播服务器。rtmp(Real-Time Messaging Protocol)是一种用于音视频传输的协议,常用于直播和点播。 安装Nginx 在安装Nginx之前,需要确保系统中安装了g…

    Nginx 2023年5月16日
    00
  • Nginx服务器基础的安全配置与一些安全使用提示

    Nginx服务器是一个常用的Web服务器,同时也是一个高性能反向代理服务器。为了确保Nginx服务器的安全性,以下是一些基础的安全配置和使用提示。本文将会分为四个部分:(1) 用户权限管理 (2) 端口保护 (3) SSL/TLS配置 (4) 请求限制。 1. 用户权限管理 首先,建议使用非root用户来运行Nginx服务器。这可以通过修改nginx.con…

    Nginx 2023年5月16日
    00
  • Nginx的一些常用配置汇总

    Nginx的一些常用配置汇总 Nginx是一个高性能的HTTP和反向代理服务器。在使用Nginx的过程中,下面这些常用的配置是必不可少的。 1. 为域名配置SSL证书 如果您的网站需要使用SSL证书来保护数据传输的安全,您需要为您的域名配置SSL证书。Nginx支持使用Let’s Encrypt等免费的SSL证书。您可以通过以下步骤配置您的SSL证书。 首先…

    Nginx 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部