eggjs+vue+nginx配置
安装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' };