Bài viết này dùng cho triển khai server ubuntu với frontend là vuejs, api sử dụng framework, chạy trên môi trường apache2
Cách thức cấu hình:
Bên frontend:
Giả sử tên miền là: vuejs.com
Cài đặt cấu hình để nhận dữ liệu từ api
Ở folder chứa html, cần tạo ra 1 file .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase / RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
Trường hợp tên miền https setup redirect không thông qua server đang chạy:
RewriteEngine On
RewriteBase / RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
Bên api:
Giả sử tên miền là: api.com
Cấu hình virtual host vuejs:
<VirtualHost *:80>
ServerName vuejs.com
DocumentRoot "/path/vuejs"
<Directory "/path/vuejs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Cấu hình virtual host api (trường hợp là chạy trực tiếp ví dụ như laravel, cần cài trực tiếp cors trong laravel)
<VirtualHost *:80>
ServerName api.com
DocumentRoot "/path/api"
<Directory "/path/api">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Cấu hình host api (trường hợp dùng proxy server) (ví dụ port 3000 chuyển sang apache2) (cần cài mod_header, mod_proxy):
<VirtualHost *:80>
ServerName api.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
Header set Access-Control-Allow-Origin "https://vuejs.com"
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"
Header set Access-Control-Allow-Credentials "true"
</VirtualHost>