/vue-admin-go

vue-admin-server 的 go 后端

Primary LanguageTSQL

vue-admin-web 项目的go服务端

项目运行步骤

  • 环境配置

    • 1 nginx 的配置
    • 2 操作系统的 host 文件配置
    • 3 执行数据库脚本文件 data.sql
  • 运行项目

    • 1 项目使用 beego web框架和go mod依赖管理
    • 2 进入项目根目录,执行 go run main.go 会自动下载相关依赖并启动
    • 3 浏览器打开 https://vue-admin-server.top/swagger-ui.hmtl 检验项目是否能正常访问
  • nginx 的配置

    需要在 nginx/conf 目录下增加 vhost 目录存放 vue-admin-server.conf, vue-admin-websocket.conf 文件
    
    • http 接口对应域名的配置

      • 对应配置文件 vue-admin-server.conf
      server {
          listen       80;
          server_name  vue-admin-server.top;
          return   301 https://$server_name$request_uri;
      }
      
      server {
          listen       443 ssl http2;
          server_name  vue-admin-server.top;
          
          
          ssl_certificate		D:/dev/app/nginx/SSL/nginx/aliyun/vue-admin-server/vue-admin-server.top.pem;
          ssl_certificate_key D:/dev/app/nginx/SSL/nginx/aliyun/vue-admin-server/vue-admin-server.top.key;
          
          ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
          ssl_session_cache    shared:SSL:1m;
          ssl_session_timeout  5m;
          ssl_ciphers  HIGH:!aNULL:!MD5;
          ssl_prefer_server_ciphers  on;
      
          location / {
              proxy_pass http://localhost:9090;
              
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_set_header X-Forwarded-Port $server_port;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header Host $http_host;
              proxy_set_header X-NginX-Proxy true;
          }
      }
      
    • websocket 对应域名的配置

      • 对应配置文件 vue-admin-websocket.conf
      map $http_upgrade $connection_upgrade {
          default upgrade;
          '' close;
      }
      
      server {
      
          listen 80;
          listen 443 ssl http2;
      
          ssl_certificate 	D:/dev/app/nginx/SSL/nginx/aliyun/constantinopolis/constantinopolis.top.pem;
          ssl_certificate_key D:/dev/app/nginx/SSL/nginx/aliyun/constantinopolis/constantinopolis.top.key;
      
          server_name constantinopolis.top;
          
          location /wss {
              proxy_pass http://localhost:9090;
              
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_set_header X-Forwarded-Port $server_port;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header Host $http_host;
              proxy_set_header X-NginX-Proxy true;
          
              proxy_http_version 1.1;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection "upgrade";
          }
      }
      
    • nginx.conf 的配置

      #user  nobody;
      worker_processes  1;
      error_log  logs/error.log;
      #pid        logs/nginx.pid;
      
      events {
          worker_connections  1024;
      }
      
      
      http {
          include       mime.types;
          default_type  application/octet-stream;
      
          log_format  main  '$remote_addr - $time_local - $status $body_bytes_sent';
          access_log  logs/access.log;
          sendfile        on;
          keepalive_timeout  65;
          
          # 如果证书能支持多级域名的话,可以用这 2 个全局证书配置
          ssl_certificate 	 D:/dev/app/nginx/SSL/nginx/create/zhengshu.pem;
          ssl_certificate_key  D:/dev/app/nginx/SSL/nginx/create/zhengshu.key;
          
          server {
              listen   80 default;
              server_name  _;
              return 403;
          }
      
          server_names_hash_bucket_size 64; 
      
          include vhost/*.conf;
      }
      
  • 为什么 websocket 的域名要单独配置

    vue-admin-server.top 这个域名为了安全访问,是配置了 http 到 https 的重定向
    http 协议能识别到重定向的 301 状态码,但是 websocket协议是无法处理这个状态码的,
    在浏览器控制台能看到这个错误,所以 websocket 不能配置 http 到 https 的重定向。
    
    还有一个问题,现在配置的证书如果是本地电脑调试的话,证书是否是真实影响不大的,自己生成
    的证书在页面打开的时候只是提示 此站点不安全,是否继续转入到该网站,点击继续就可以了
    
    但是websocket 如果配置的 https 的域名对应的证书是自己生成的,浏览器识别到不是机构的证书,直接就报错了
    不会弹出 此站点不安全,是否继续转入到该网站 的提示
    
  • 操作系统的 host 文件配置

    127.0.0.1 constantinopolis.top
    127.0.0.1 vue-admin-server.top