前后端分离项目配置域名
配置后端域名
以 Nginx 为例进行配置,打开 conf/nginx.conf ,增加配置
配置 http 访问:
server {
listen 80;
server_name api.xx.com;
location / {
proxy_pass http://127.0.0.1:9058/;
#保留代理之前的host
proxy_set_header Host $host;
#保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#在多级代理的情况下,记录每次代理之前的客户端真实ip
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
#指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
proxy_redirect default;
}
}
配置 https 访问:
server {
listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
# 下述域名 api.xx.com 实际部署时您可以自定义(需解析备案后的域名),这里只做案例表述;
server_name api.xx.com;
# 配置SSL证书
ssl_certificate cert/您的证书.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/您的证书.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:9058/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
上述代理转发的地址务必设置成IP地址,请勿直接设置localhost;
配置前端域名
配置 http 访问:
server
{
listen 80;
server_name admin.xx.com;
root /www/webroot/xx/dist;
# 开启gzip功能
gzip on;
gzip_min_length 10k;
gzip_comp_level 9;
gzip_types text/plain text/css application/javascript application/x-javascript text/javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
location /{
try_files $uri $uri/ @router;
index index.html;
}
location @router{
rewrite ^.*$ /index.html last;
}
}
配置 https 访问:
server
{
listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
# 下述域名 admin.echo.elevue 实际部署时您可以自定义(需解析备案后的域名),这里只做案例表述;
server_name admin.xx.com;
root /www/webroot/xx/dist;
# 配置SSL证书
ssl_certificate cert/您的证书.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/您的证书.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
# 开启gzip功能
gzip on;
gzip_min_length 10k;
gzip_comp_level 9;
gzip_types text/plain text/css application/javascript application/x-javascript text/javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
location /{
try_files $uri $uri/ @router;
index index.html;
}
location @router{
rewrite ^.*$ /index.html last;
}
}
配置图片域名
配置 http 访问:
server {
listen 80;
server_name images.xx.com;
root /www/webroot/xx/uploads;
location ~ \.ico|jpg|JPG|PNG|GIF|JPEG|jpeg|gif|png|js|css|woff2|ttf$ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Request-Methods GET,POST,PUT,DELETE,OPTIONS;
#expires 1h;
}
}
配置 https 访问:
server {
listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
# 下述域名 images.echo.elevue 实际部署时您可以自定义(需解析备案后的域名),这里只做案例表述;
server_name images.xx.com;
root /www/webroot/xx/uploads;
# 配置SSL证书
ssl_certificate cert/您的证书.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/您的证书.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location ~ \.ico|jpg|JPG|PNG|GIF|JPEG|jpeg|gif|png|js|css|woff2|ttf$ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Request-Methods GET,POST,PUT,DELETE,OPTIONS;
#expires 1h;
}
}
目前系统上传的图片、文件等资源文件全部存放在 uploads 文件目录中,图片域名配置时指向实际部署目录;
版权声明:
作者:超级管理员
链接:
https://blog.apecloud.ltd/article/detail.html?id=156
来源:猿码云个人技术站
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
打赏
共有0条评论