nginx配置SSL协议,80端口443端口。和非80/443端口

本文详细介绍如何使用Nginx进行SSL配置,包括80端口重定向至443端口的HTTPS,以及非标准SSL端口的配置示例。通过具体代码,指导读者完成网站的安全升级。

1、80/443

server {

listen 80;

server_name www.域名.com;

rewrite ^(.*) https://$server_name$1 permanent;

}

server {

listen 443;

server_name www.域名.com;

root /home/www;

ssl on;

ssl_certificate /etc/nginx/certs/server.crt;

ssl_certificate_key /etc/nginx/certs/server.key;

}

 

2、非80、443接口

加粗黑体字为关键ssl认证代码

server {
        listen       2019 ssl;
        server_name  xk.thinkhub.com.cn;
        ssl on;
        ssl_certificate   cert/2698782_xk.thinkhub.com.cn.pem;
        ssl_certificate_key  cert/2698782_xk.thinkhub.com.cn.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

       这里是重点,价格下面 一行,http就能跳转到https
       error_page 497 301 https://$http_host$request_uri;


        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        root         D:/XinKang/rehabilitation/rmyy/dist; #vue项目的打包后的dist
        location / {
            try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
            index  index.html index.htm;
        }
        
        #对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
        #因此需要rewrite到index.html中,然后交给路由在处理请求资源
        location @router {
            rewrite ^.*$ /index.html last;
        }

     
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

     
    }

参考文献

https://blog.csdn.net/weixin_44316575/article/details/85328224

### 配置 Nginx 使用 HTTP (80) HTTPS (443) 端口 为了使 Nginx 同时支持 HTTP HTTPS 请求,需要创建两个监听不同端口的服务配置。对于 HTTP 流量,默认情况下会通过端口 80 接收请求;而对于 HTTPS,则是在端口 443 上处理加密通信。 #### 创建基本的服务器块定义 在 `/etc/nginx/sites-available/default` 或者自定义站点文件中加入如下所示的基础结构: ```nginx server { listen 80; server_name example.com www.example.com; location / { # 处理来自HTTP客户端的请求逻辑... } } ``` 这段代码设置了针对域名 `example.com` 的 HTTP 服务[^2]。 #### 添加 SSL 支持 为了让网站能够安全地传输数据,还需要设置用于 HTTPS 的部分,在同一文件内追加下面的内容来启用 SSL/TLS 加密连接: ```nginx server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /path/to/cert.pem; # 替换成实际路径下的证书位置 ssl_certificate_key /path/to/key.pem; # 替换成私钥的位置 location / { # 对于HTTPS流量的具体响应方式可以在这里编写 } } ``` 这里指定了 SSL 证书及其对应的私钥所在目录,并启用了对这两个资源的安全访问控制[^1]。 #### 自动重定向至 HTTPS 如果希望强制所有的 HTTP 请求都被导向到更安全的 HTTPS 版本页面上,可以在第一个 `server{}` 块内部添加一条返回指令实现永久性重定向功能: ```nginx server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } ``` 这行命令告诉浏览器将任何尝试过 HTTP 方式的链接都转换成相同 URL 结构但是采用 HTTPS 协议的形式重新加载一次。 以上就是完整的关于如何让 Nginx 同时服务于未加密(HTTP/80)以及已加密(HTTPS/443)两种类型的网络请求的方法说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值