nginx配置

为什么用postman请求本地的接口 前面是http不是https http://localhost:18080/api/v3/process/selectSubTableData

 

在开发和测试环境中,使用 HTTP 而不是 HTTPS 来请求本地接口是非常常见的做法,原因包括:

  1. 简化配置:在本地开发时,通常不需要设置 HTTPS,这样可以避免配置 SSL/TLS 证书的复杂性。

  2. 性能:HTTPS 需要额外的加密和解密过程,这可能会稍微影响性能。在开发和测试阶段,性能不是主要关注点,因此通常使用 HTTP。

  3. 工具支持:像 Postman 这样的工具默认使用 HTTP 来请求接口,因为它们主要用于开发和测试,而不是生产环境。

  4. 安全性要求较低:在本地环境中,数据传输的安全性要求通常较低,因为数据不会在公共网络上传输。

  5. 开发方便:使用 HTTP 可以让开发者更容易地进行接口调试和测试,因为大多数开发工具和浏览器都原生支持 HTTP。

  6. 成本:获取和维护有效的 SSL/TLS 证书需要一定的成本,而在开发和测试环境中,这些成本通常是不必要的。

  7. 兼容性:某些开发环境和工具可能不支持 HTTPS,或者配置起来比较麻烦。

在您提供的例子中,http://localhost:18080/api/v3/process/selectSubTableData 使用 HTTP 协议和 localhost 作为主机名,这表明这是一个本地接口调用,通常用于开发或测试目的。端口 18080 是该服务在本地机器上监听的端口号。

当您的应用准备部署到生产环境时,通常会使用 HTTPS 来确保数据传输的安全性,防止数据在传输过程中被窃听或篡改。在生产环境中,您需要为域名获取有效的 SSL/TLS 证书,并在服务器上配置它们。

 

如果是生产环境, 在哪里配置https, yml文件么 还是在哪里配置

 
 

在生产环境中,配置 HTTPS 通常涉及以下几个步骤:

  1. 获取 SSL/TLS 证书:

    • 从证书颁发机构(CA)购买证书,或者使用 Let's Encrypt 等免费服务获取免费证书。
    • 证书通常包括一个私钥文件、一个证书文件(公钥),以及可能的中间证书。
  2. 配置 Web 服务器:

    • 对于 Nginx,可以在 Nginx 配置文件中配置 SSL/TLS。例如:
      nginx
      server {
          listen 443 ssl;
          server_name example.com;
      
          ssl_certificate /path/to/cert.pem;
          ssl_certificate_key /path/to/key.pem;
          ssl_trusted_certificate /path/to/chain.pem;
      
          location / {
              # Proxy settings or static files
          }
      }
    • 对于 Apache,可以在 Apache 的配置文件中设置 SSL/TLS。例如:
      apache
      <VirtualHost *:443>
          ServerName example.com
          DocumentRoot /var/www/html
      
          SSLEngine on
          SSLCertificateFile /path/to/cert.pem
          SSLCertificateKeyFile /path/to/key.pem
          SSLCertificateChainFile /path/to/chain.pem
      
          # Other directives...
      </VirtualHost>
    • 如果您的应用是自行托管的,并且直接处理 HTTPS,那么您需要在应用的配置中指定证书。例如,在 Spring Boot 应用中,您可以在 application.yml 或 application.properties 文件中配置 SSL/TLS:
      yaml
      server:
        port: 443
        ssl:
          enabled: true
          key-store: classpath:keystore.jks
          key-store-password: password
          key-alias: mykey
          key-password: password
      或者使用 Java 系统属性:
      properties
      server.port=443
      server.ssl.enabled=true
      server.ssl.key-store=classpath:keystore.jks
      server.ssl.key-store-password=password
      server.ssl.key-alias=mykey
      server.ssl.key-password=password
    • 对于其他语言和框架,通常有类似的配置方法。
  3. 配置应用服务器:

    • 如果您的应用运行在像 Tomcat、Jetty 或 Undertow 这样的应用服务器上,您需要在服务器的配置文件或管理界面中配置 SSL/TLS。
  4. 更新 DNS 和 Firewall 规则:

    • 确保 DNS 设置正确,将您的域名指向应用服务器的公网 IP。
    • 更新防火墙规则,允许 443 端口的流量。
  5. 测试 HTTPS 配置:

    • 在配置完成后,使用浏览器或 curl 命令测试 HTTPS 连接是否正常工作。

请注意,配置 HTTPS 需要一定的网络安全知识,确保正确配置证书和加密设置,以保护数据传输的安全。

 
listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    ssl_trusted_certificate /path/to/chain.pem;

    location / {
        # Proxy settings or static files
    }  解释一下

这段配置是 Nginx 服务器的配置片段,用于设置一个 HTTPS 服务器,监听 443 端口,这是 HTTPS 服务的标准端口。下面是每个指令的详细解释:

  1. listen 443 ssl;

    • 这行配置告诉 Nginx 监听 443 端口,并且启用 SSL 加密。ssl 参数指示 Nginx 在这个监听端口上启用 SSL。
  2. server_name example.com;

    • 这行配置设置了服务器块的域名,即 server_name 指令定义了这个虚拟主机的域名。在这里,它指定了域名 example.com。当访问这个域名时,Nginx 会使用这个服务器块的配置来处理请求。
  3. ssl_certificate /path/to/cert.pem;

    • 这行配置指定了 SSL 证书文件的位置。cert.pem 是 SSL 证书文件,包含了网站的公钥。这个文件应该位于指定的路径中。
  4. ssl_certificate_key /path/to/key.pem;

    • 这行配置指定了 SSL 私钥文件的位置。key.pem 是 SSL 私钥文件,它必须保密,不应该泄露给未授权的人员。
  5. ssl_trusted_certificate /path/to/chain.pem;

    • 这行配置指定了证书链文件的位置。chain.pem 文件包含了证书颁发机构(CA)的证书,用来建立证书的信任链。如果证书是自签名的或者只有一个证书文件,可能不需要这个指令。
  6. location / { ... }

    • 这是一个 location 块,定义了当请求到达服务器时如何处理请求。在这个例子中,它匹配根 URL(/),即网站的首页。在这个块中,你可以定义反向代理设置(将请求转发到后端服务器),或者提供静态文件服务。例如,你可以配置 Nginx 将请求转发到一个运行在特定端口上的 Spring Boot 应用。

请注意,/path/to/cert.pem/path/to/key.pem/path/to/chain.pem 是证书文件的路径占位符,你需要将它们替换为实际的证书文件路径。这些文件应该提前准备好,并且放置在服务器上安全的位置。

在配置 HTTPS 时,确保你的证书和私钥是有效的,并且与你的域名匹配。配置完成后,你需要重新加载或重启 Nginx 以使配置生效:

sh
sudo nginx -t # 检查配置文件是否有语法错误
sudo systemctl reload nginx # 重新加载配置文件

或者:

sudo nginx -s reload # 另一种重新加载配置的方式
 
 
 
posted @ 2024-10-22 11:35  lamda表达式先驱  阅读(60)  评论(0)    收藏  举报