前后端分离项目配置域名

配置后端域名

以 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
分享
二维码
打赏
/static/admin/img/weixin.jpg/static/admin/img/zfb.jpg
<<上一篇>
使用gitlab和jenkins实现CICD
下一篇>>