nginx运行前端代码

2025-03-25 0 23

nginx运行前端代码

解决方案

当需要将前端代码(如HTML、CSS和JavaScript文件)通过Nginx服务器提供给用户访问时,可以采用以下解决方案:配置Nginx以静态资源服务器的方式运行,将前端项目构建后的文件部署到Nginx的指定目录下。这样用户在浏览器中访问Nginx服务器地址时,就能加载并显示前端页面了。

一、基础配置

确保已经安装好Nginx。然后进行简单的配置来运行前端代码。

  1. 将前端项目构建
    • 如果是使用Vue、React等框架创建的前端项目,需要先执行构建命令。例如对于Vue项目,在项目根目录下执行npm run build,这会在项目中生成一个dist文件夹,里面包含着构建后的静态资源。
  2. 修改Nginx配置文件

    • Nginx的配置文件通常位于/etc/nginx/nginx.conf或者/etc/nginx/conf.d/default.conf(不同系统可能路径有所不同)。打开配置文件,进行如下设置:
      ```nginx
      server {
      listen 80;
      server_name localhost;

      # 设置默认首页文件
      index  index.html index.htm;
      
      # 前端项目的根目录,这里假设我们将dist文件夹放在了/usr/share/nginx/html下
      root   /usr/share/nginx/html/dist;
      
      location / {
          try_files $uri $uri/ /index.html;
          # 这里的try_files指令是为了让前端路由能够正常工作,例如对于单页应用(SPA),当用户直接访问带有路由参数的页面时,不会出现404错误。
      }
      
      # 错误页面的设置可以根据需要调整
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   /usr/share/nginx/html;
      }
      

      }
      ```

  3. 重启Nginx
    • 在Linux系统中,可以使用命令sudo systemctl restart nginx来重启Nginx,使配置生效。此时访问Nginx服务器对应的IP地址或者域名就可以看到前端页面了。

二、多站点部署思路

如果想要在同一台Nginx服务器上部署多个前端项目,可以采用基于域名或者基于路径的多站点部署方式。

1. 基于域名的多站点部署

  • 需要为每个前端项目配置不同的域名,并且在Nginx中为每个域名创建一个server块。例如有两个前端项目,分别对应project1.comproject2.com两个域名。在Nginx配置文件中添加如下内容:
    ```nginx
    server {
    listen 80;
    server_name project1.com;

    index  index.html index.htm;
    root   /usr/share/nginx/html/project1/dist;
    
    location / {
        try_files $uri $uri/ /index.html;
    }
    

    }
    server {
    listen 80;
    server_name project2.com;

    index  index.html index.htm;
    root   /usr/share/nginx/html/project2/dist;
    
    location / {
        try_files $uri $uri/ /index.html;
    }
    

    }
    ```

  • 然后需要在域名解析处将这两个域名指向Nginx服务器的IP地址。

2. 基于路径的多站点部署

  • 如果只有一个域名,但要在不同的路径下部署不同的前端项目。例如在example.com域名下,example.com/project1example.com/project2分别对应两个不同的前端项目。可以在一个server块中使用不同的location来实现:
    ```nginx
    server {
    listen 80;
    server_name example.com;

    location /project1/ {
        alias /usr/share/nginx/html/project1/dist/;
        try_files $uri $uri/ /project1/index.html;
    }
    location /project2/ {
        alias /usr/share/nginx/html/project2/dist/;
        try_files $uri $uri/ /project2/index.html;
    }
    

    }
    ```

三、反向代理与前端代码

有时候前端项目会调用后端接口,而前后端分离部署在不同的服务器上。这时可以利用Nginx的反向代理功能。

  1. 假设后端接口服务器地址为http://backend.example.com

    • 在Nginx配置文件中添加反向代理配置:
      ```nginx
      server {
      listen 80;
      server_name frontend.example.com;

      index  index.html index.htm;
      root   /usr/share/nginx/html/dist;
      
      location /api/ {
          proxy_pass http://backend.example.com/;
          # 以下是一些常见的反向代理优化配置
          proxy_set_header Host $host;
          proxy_set_header X - Real - IP $remote_addr;
          proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
          proxy_set_header X - Forwarded - Proto $scheme;
      }
      
      location / {
          try_files $uri $uri/ /index.html;
      }
      

      }
      ```

    • 这样在前端代码中调用/api/xxx这样的接口时,Nginx就会将请求转发到后端服务器的对应接口。

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载