关于后端和前端服务的部署心得:

93 阅读3分钟

关于后端和前端服务的部署心得:

站在前端角度认识下部署的简单逻辑~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.服务器(别人可以访问的一个公网ip地址)

服务器其实是个别人可以访问公网ip地址,也可以说是一台电脑;前端代码,后端环境搭建,数据库都放到了这个电脑上面;

2.后端服务

后端部署之后,redis启动,数据库建立后,后端服务1启动,后端服务2启动....等等

问题1:服务1和服务2有什么不一样呢,前端如何请求到服务1和服务2的数据呢?

答:服务1和服务2的区别在于监听的端口号不一样,也不能一样,在服务器上前端通过nginx代理,监听不同的端口来转发到后端的服务;

假如后端服务1的端口是8002,服务2的端口是8003

# 第一个后端服务的配置
server {
    listen 8002;
    server_name api1.example.com;
​
    location / {
        proxy_pass http://localhost:8002; // 后端服务1的端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
​
# 第二个后端服务的配置
server {
    listen 8003;
    server_name api2.example.com;
​
    location / {
        proxy_pass http://localhost:8003; // 后端服务2的端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

问题2:上面的server_name表示什么呢?

server_name也属于监听,监听域名访问,如果是api1.example.com域名直接访问,那么就会转发到

服务1的服务上 ;

问题3:api1.example.com怎么才能走到这个nginx上呢

凡是公网可访问的域名,需要在域名注册商的管理界面,把这个域名指向公网服务器的 IP 地址。这样就会在访问api1.example.com的时候走到我们自己服务器上的nginx配置了

3 前端服务

问题1:前端项目的域名怎么到后端;

首先我们得说明下,前端项目一般都是打包后了,然后吧打包后的文件放大了服务器上的某个文件夹下,其实就是个静态文件,用户通过域名访问怎么才能指向我们这个文件夹呢?

我们刚才说了凡是,公网可访问的域名,需要在域名注册商的管理界面,把这个域名指向公网服务器的 IP 地址,既然指向我们服务器ip地址了,我们就可以通过nginx去配置然后指向我们得这个静态文件:

假设我们得两个个前端项目域名地址是example1.comexample2.com 那么配置如下

把各个前端项目的静态文件上传到服务器的指定目录,例如 /var/www/html/project1/var/www/html/project2 等。

针对每个域名,在 Nginx 的配置文件中添加对应的虚拟主机配置。配置文件通常存于 /etc/nginx/sites-available 目录,可创建新的配置文件或者直接编辑已有文件。

下面是一个示例配置:

# 第一个域名的配置
server {
    listen 80;
    server_name example1.com;
​
    root /var/www/html/project1;
    index index.html;
​
    location / {
        try_files $uri $uri/ /index.html;
    }
}
​
# 第二个域名的配置
server {
    listen 80;
    server_name example2.com;
​
    root /var/www/html/project2;
    index index.html;
​
    location / {
        try_files $uri $uri/ /index.html;
    }
}

通过上面的配置我们就能打开我们得前端项目,打开前端项目后请求后端的服务原理就如上述的后端部署了。

总结:站在前端的角度,根本没有什么前端域名和后端域名,其实就是通过nginx做转发转发到了后端的服务和前端打包文件夹,然后拿取数据做交互。