­

eggjs+vue+nginx配置

  • 2020 年 3 月 18 日
  • 筆記

安装node

https://github.com/nodesource/distributions#installation-instructions-1

注意使用No root privileges方法安装

安装yarn

curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo  sudo yum install yarn

安装nginx

//安装nginx的命令  sudo yum install epel-release  sudo yum install nginx  //让nginx随系统启动而启动  sudo systemctl enable nginx  //常用命令  //启动:nginx  //停止:nginx -s stop  //重载配置:nginx -s reload  //配置路径:/etc/nginx/nginx.conf  //日志路径:/var/log/nginx

nginx关键配置

    server {          listen       80 default_server;          listen       [::]:80 default_server;          server_name  domain.com www.domain.com;          root   /home/client/;          location / {  	    try_files $uri $uri/  /index.html;          }          location /api/ {      	    proxy_pass http://127.0.0.1:7001/;          }      }

注意两个location和root,不要把vue的静态文件放在root目录下

注意最后一个location中,api和7001后面都有斜杠

nginx证书配置

	server  	{  		listen 443;  		server_name your-domain.com www.your-domain.com;  		ssl on;  		ssl_certificate  /root/ssl/your-domain.crt;  		ssl_certificate_key /root/ssl/your-domain.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;  		location / {  			proxy_buffer_size  128k;  			proxy_buffers   32 32k;  			proxy_busy_buffers_size 128k;  			proxy_pass http://127.0.0.1:912;  		}  	}  	server  	{  		listen 80;  		server_name your-domain.com www.your-domain.com;      	        rewrite ^(.*)$ https://$host$1 permanent;  	}

为了调试方便,vue.config.js的配置如下

module.exports = {      devServer: {          proxy: {              '/api': {                  target:'http://127.0.0.1:7001',                  changeOrigin: true,                  secure: false,                  pathRewrite: {                      '^/api': '/' //重写之后url为 http://127.0.0.1:7001/xxxx                      //pathRewrite: {'^/api': '/api'} 重写之后url为 http://192.168.1.16:8085/api/xxxx                  }              }          }      }  };

egg.js调试配置如下:config文件夹下plugin.js

module.exports = {    cors: {      enable: true,      package: 'egg-cors'    }  };

config.default.js:注意这里的配置是有些危险的,因为可能会同步到服务器上去

  config.security = {      csrf: {        enable: false      },      domainWhiteList: [ '*' ]    };    config.cors = {      origin: '*',      allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS'    };