• vue发布Nginx配置Https


    介绍

    vue在国内的前端地位可谓是如日中天,由于目前主流的前后端分离式开发,让许多前端小伙伴不太了解服务器操作特别是Linux,而许多后台开发人员虽然精通服务器,却不懂前端框架如何发布。本篇将详细介绍vue构建静态文件发布至Linux并配置Nginx服务代理https,在发布前我们先需要准备以下环境:

    • Linux服务器:CentOS、Ubuntu
    • 域名:云服务商处购买域名
    • SSL证书:云服务商购买或Open SSL

    配置服务器

    下面以阿里云服务为例,介绍Linux服务搭建过程,购买过程省略

    安装Nginx

    使用SSH工具进入服务器(推荐XShell),安装Nginx:
    CentOS使用以下命令:
    yum update
    yum install nginx
    Ubuntu使用命令:
    sudo apt update
    sudo apt install nginx
    安装完成后启动nginx并配置开机自动启动
    sudo systemctl start nginx
    sudo systemctl enable nginx
    浏览器输入服务IP查看nginx是否成功启动,出现以下界面说明安装成功(Ubuntu有差异),需要先开启80端口,参考下面端口配置

    发布vue静态文件

    在vue项目目录下输入npm run build:prod,复制dist打包文件上传至Linux服务器,上传成功后复制文件所在路径,最后配置nginx服务
    输入以下命令进入配置nginx
    vi /etc/nginx/nginx.conf
    nginx配置大致如下:

    # For more information on configuration, see:
    #   * Official English Documentation: http://nginx.org/en/docs/
    #   * Official Russian Documentation: http://nginx.org/ru/docs/
    
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    
        server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            server_name  _;
    
    

    配置文件较长,主要配置server节点的内容,其他给中配置都是默认不需要修改,将第一个server节点中的root路径改为复制的dist路径

        server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            server_name  _;
            root         /home/dist;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / {
            }
    
            error_page 404 /404.html;
            location = /404.html {
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            }
        }
    
    

    修改完成后退出vi并保存,然后刷新浏览器IP访问页面,可以看到nginx服务已经使用http成功代理vue发布文件

    图中可以看到http代理下chrome自动提示连接不安全

    域名配置

    域名配置以阿里云域名服务为例,其他供应商均大同小异,购买过程省略。

    注:域名服务最好和云服务使用同一供应商,如阿里云域名代理会对其服务器进行优化,速度更优,域名购买后需要实名认证才能使用。

    域名解析

    1. 进入阿里云域名管理控制台-域名列表,选择你需要解析的域名

    2. 在解析设置中添加一条IPV4记录

    保存成功后域名解析配置完成

    SSL证书配置

    SSL证书同样以阿里云为例,购买过程省略,开发者可以选择购买个人免费证书。

    SSL证书下载

    1. 进入阿里云SSL证书管理控制台-证书列表,选择你购买的证书并按步骤提交申请-审核验证。

    2. 审核通过后在证书列表下载项中选择Nginx服务器下载

    3. 下载完成后上传至Linux服务器并解压

    解压文件后复制文件路径,可以根据需要修改文件名,如文件名太长。

    Nginx配置

    修改Nginx默认配置

    进入nginx按照目录并修改nginx.conf默认配置
    cd /etc/nginx
    vi nginx.conf

    1. 开启nginx 443端口监听

    将nginx.conf中http节点第二个server配置注释解除,也就是开启nginx 443端口监听。

    2. 将ssl_certificate、ssl_certificate_key配置更换为上传的SSL证书

    3. 修改https代理根目录文件

    将root替换发布的vue静态文件目录

    4. 配置http请求自动跳转https

    在nginx 80端口配置中,也就是第一个server节点配置添加一行自动跳转
    rewrite ^(.*)$ https://$host$1 permanent;

    完整配置如下

        server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            server_name  xucz.vip;
            rewrite ^(.*)$  https://$host$1 permanent;
            root         /usr/share/nginx/html;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / {
            }
    
            error_page 404 /404.html;
            location = /404.html {
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            }
        }
    
    # Settings for a TLS enabled server.
     
        server {
            listen       443 ssl http2;
            listen       [::]:443 ssl http2;
            server_name  xucz.vip;
            root         /home/doc;
    
            ssl_certificate "/var/lib/nginx/xucz.vip.pem";
            ssl_certificate_key "/var/lib/nginx/xucz.vip.key";
            ssl_session_cache shared:SSL:1m;
            ssl_session_timeout  10m;
            ssl_ciphers HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers on;
            error_page 497 301 =307
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / {
            }
    
            error_page 404 /404.html;
            location = /404.html {
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            }
        }
    
    

    端口配置

    1. 以上配置完成后需要开发端口才能正常访问,阿里云中端口不能在服务器防火墙中配置,只能在云服务管理控制台-实例中添加安全组

    2. 在安全组配置规则中选择快速添加,并将http和https加入安全组

    完成

    在浏览器中使用域名进行访问

    可以看到连接自动启用https,如果将连接改为http同样会自动跳转至https

    注:使用域名访问80端口需要进行备案,我的域名暂时没有备案所有使用端口进行访问,效果同80端口访问一致

  • 相关阅读:
    Platform创建WinCE内核时的编译错误
    evc4下载
    WinCE NK.bin与NK.nb0
    怎样安装SQL Server CE
    WinCE 5.0 & its eboot
    WinCE 5.0边做边学(4)
    nema协议解析
    wince romfs的一点讨论
    学习VC++时经常会遇到链接错误LNK2001
    wince 来电防火墙静音实现的几种办法
  • 原文地址:https://www.cnblogs.com/william-xu/p/14167521.html
Copyright © 2020-2023  润新知