zoukankan      html  css  js  c++  java
  • 从零到一快速搭建个人博客网站(域名自动跳转www,二级域名使用)(二)

    前言

    本篇文章是对上篇文章从零到一快速搭建个人博客网站(域名备案 + https免费证书)(一)的完善,比如域名自动跳转www、二级域名使用等。

    域名自动跳转www

    这里对上篇域名访问进行优化,首先支持域名自动跳转带有www的地址,操作如下:

    cd /home/nginx/conf.d
    vi default.conf
    

    当前的配置:

    # 编辑conf.d 下的default.conf
    server {
        listen       80 default;
        server_name yangwq.cn;
    	# http自动转https
        rewrite ^(.*)$  https://$host$1 permanent;
    }
    
    server {
        listen 443 ssl;
        server_name yangwq.cn;
        
        # 配置站点证书文件地址
        ssl_certificate  /etc/letsencrypt/archive/yangwq.cn/fullchain1.pem;
        # 配置证书私钥
        ssl_certificate_key  /etc/letsencrypt/archive/yangwq.cn/privkey1.pem;
     
        
        # 配置服务器可使用的加密算法
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    
        # 指定服务器密码算法在优先于客户端密码算法时,使用 SSLv3 和 TLS 协议
        ssl_prefer_server_ciphers  on;
        
        # ssl 版本 可用 SSLv2,SSLv3,TLSv1,TLSv1.1,TLSv1.2 
        # ie6 只支持 SSLv2,SSLv3 但是存在安全问题, 故不支持
        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
        
        # 配置 TLS 握手后生成的 session 缓存空间大小 1m 大约能存储 4000 个 session
        ssl_session_cache          shared:SSL:50m;
        # session 超时时间
        ssl_session_timeout        1d;
        
        # 负载均衡时使用 此处暂时关闭 详情见 https://imququ.com/post/optimize-tls-handshake.html 
        # 1.5.9 及以上支持
        ssl_session_tickets off;
        
        # 浏览器可能会在建立 TLS 连接时在线验证证书有效性,从而阻塞 TLS 握手,拖慢整体速度。OCSP stapling 是一种优化措施,服务端通过它可以在证书链中封装证书颁发机构的 OCSP(Online Certificate Status Protocol)响应,从而让浏览器跳过在线查询。服务端获取 OCSP 一方面更快(因为服务端一般有更好的网络环境),另一方面可以更好地缓存 以上内容来自 https://imququ.com/post/my-nginx-conf-for-wpo.html
        # 1.3.7 及以上支持
        ssl_stapling               on;
        ssl_stapling_verify        on;
        # 根证书 + 中间证书
        ssl_trusted_certificate    /etc/letsencrypt/archive/yangwq.cn/fullchain1.pem;
        
        # HSTS 可以告诉浏览器,在指定的 max-age 内,始终通过 HTTPS 访问该域名。即使用户自己输入 HTTP 的地址,或者点击了 HTTP 链接,浏览器也会在本地替换为 HTTPS 再发送请求 相关配置见 https://imququ.com/post/sth-about-switch-to-https.html
        add_header Strict-Transport-Security max-age=60;
        
        # 在此填写原本 http 协议中的配置
        location / {                           
            # 配置转发到本机的halo端口,注意这里的ip应该是机器的ip,不能使用127.0.0.1,使用ip addr 查看本机ip
            proxy_pass http://171.11.3.13:8080;
        }
      error_page   500 502 503 504  /50x.html;
        location = /50x.html {                #重定向错误页面到 /50x.html
            root   /usr/share/nginx/html;
        }
    }
    

    修改为:

    server {
        listen       80;
        server_name *.yangwq.cn;
        # 域名为 http://yangwq.cn 跳转到 https://www.yangwq.cn
        if ($http_host ~ "^yangwq.cn$") {
           rewrite ^(.*)$  https://www.$host$1 permanent;
        }
        # 域名不为 http://yangwq.cn,统一使用以https访问,不加www
        if ($http_host !~ "^yangwq.cn$") {
          rewrite ^(.*)$  https://$host$1 permanent;
        }
    }
    
    
    server {
        listen 443 ssl;
        server_name yangwq.cn;
        
        # 配置站点证书文件地址
        ssl_certificate  /etc/letsencrypt/archive/yangwq.cn/fullchain1.pem;
        # 配置证书私钥
        ssl_certificate_key  /etc/letsencrypt/archive/yangwq.cn/privkey1.pem;
        
        # 配置服务器可使用的加密算法
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    
        # 指定服务器密码算法在优先于客户端密码算法时,使用 SSLv3 和 TLS 协议
        ssl_prefer_server_ciphers  on;
        
        # ssl 版本 可用 SSLv2,SSLv3,TLSv1,TLSv1.1,TLSv1.2 
        # ie6 只支持 SSLv2,SSLv3 但是存在安全问题, 故不支持
        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
        
        # 配置 TLS 握手后生成的 session 缓存空间大小 1m 大约能存储 4000 个 session
        ssl_session_cache          shared:SSL:50m;
        # session 超时时间
        ssl_session_timeout        1d;
        
        # 负载均衡时使用 此处暂时关闭 详情见 https://imququ.com/post/optimize-tls-handshake.html 
        # 1.5.9 及以上支持
        ssl_session_tickets off;
        
        # 浏览器可能会在建立 TLS 连接时在线验证证书有效性,从而阻塞 TLS 握手,拖慢整体速度。OCSP stapling 是一种优化措施,服务端通过它可以在证书链中封装证书颁发机构的 OCSP(Online Certificate Status Protocol)响应,从而让浏览器跳过在线查询。服务端获取 OCSP 一方面更快(因为服务端一般有更好的网络环境),另一方面可以更好地缓存 以上内容来自 https://imququ.com/post/my-nginx-conf-for-wpo.html
        # 1.3.7 及以上支持
        ssl_stapling               on;
        ssl_stapling_verify        on;
        # 根证书 + 中间证书
        ssl_trusted_certificate    /etc/letsencrypt/archive/yangwq.cn/fullchain1.pem;
        
        # HSTS 可以告诉浏览器,在指定的 max-age 内,始终通过 HTTPS 访问该域名。即使用户自己输入 HTTP 的地址,或者点击了 HTTP 链接,浏览器也会在本地替换为 HTTPS 再发送请求 相关配置见 https://imququ.com/post/sth-about-switch-to-https.html
        add_header Strict-Transport-Security max-age=60;
       
        # 如果直接使用https://yangwq.cn访问,需要跳转到带www域名
        if ($host ~ "^yangwq.cn$") {
            rewrite ^(.*)$  https://www.$host$1 permanent;
        }
        # 在此填写原本 http 协议中的配置
        location / {                           # 定义首页索引目录和名称
            proxy_pass http://171.11.3.13:8080;
        }
      error_page   500 502 503 504  /50x.html;
        location = /50x.html {                #重定向错误页面到 /50x.html
            root   /usr/share/nginx/html;
        }
    
    }
    
    
    

    将上面有关 yangwq.cn 的部分替换成你的域名,此时我们访问yangwq.cn会自动跳转到 https://www.yangwq.cn

    二级域名https

    申请二级域名

    由于博主是阿里云购买的域名,所以这里申请域名仅针对在阿里云购买的域名。

    从域名解析列表加入需要使用的二级域名:
    image.png

    上面我们添加了一个temp.yangwq.cn的二级域名,指向域名 yangwq.cn 的地址,这时候通过temp.yangwq.cn 访问是失败的,原因是需要等待网络服务商刷新DNS地址,一般需要等等1-2分钟。

    此时我们访问访问temp.yangwq.cn会默认跳转到 www.yangwq.cn 首页。为了方便测试,我们需要针对temp.yangwq.cn 配置访问nginx默认页面。

    修改配置如下:

    vi default.conf
    # 在末尾追加以下脚本
    server {
       listen 443 ssl;
       server_name temp.yangwq.cn;
       location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {                #重定向错误页面到 /50x.html
            root   /usr/share/nginx/html;
        }
     
    }
    
    

    由于我们上篇文章申请的是通配符https证书,所以直接可以使用https访问 temp.yangwq.cn,我们会看到这个页面:
    image.png

    小结

    到这一步,我们二级域名就配置完了,如果我们需要二级域名跳转到内部应用,我们只要修改以下内容就行了

    # 改为你想代理的应用
    location / {
         # 注意这里要使用机器的ip,不能用127.0.0.1,机器ip使用命令 ip addr 查看
          proxy_pass http://ip:端口;
    }
    

    后续文章在个人博客更新,欢迎关注~

  • 相关阅读:
    【leetcode】1295. Find Numbers with Even Number of Digits
    【leetcode】427. Construct Quad Tree
    【leetcode】1240. Tiling a Rectangle with the Fewest Squares
    【leetcode】1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold
    【leetcode】1291. Sequential Digits
    【leetcode】1290. Convert Binary Number in a Linked List to Integer
    【leetcode】1269. Number of Ways to Stay in the Same Place After Some Steps
    【leetcode】1289. Minimum Falling Path Sum II
    【leetcode】1288. Remove Covered Intervals
    【leetcode】1287. Element Appearing More Than 25% In Sorted Array
  • 原文地址:https://www.cnblogs.com/winkin/p/14165623.html
Copyright © 2011-2022 走看看