【运维】手把手教你在Linux/Windows系统使用Nginx部署多个前端项目【详细操作】

这篇具有很好参考价值的文章主要介绍了【运维】手把手教你在Linux/Windows系统使用Nginx部署多个前端项目【详细操作】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        需求:项目上线需要将前端的前台和后台部署在服务器上提供用户进行使用,部署在不同的服务器直接在服务器安装nginx即可。但是在内网安装还是有点麻烦,因为需要联网,如果是内网可以参考Linux安装Nginx并部署前端项目【内/外网-保姆级教程】_MXin5的博客-CSDN博客   。 同一个服务器的话就需要在配置文件中下文章了,所以就跟着下列的操作进行在Linux/Windows环境使用Nginx部署两个前端项目吧。

        下列我是用自己的电脑windows系统进行演示哈,主要就是配置文件,也不难,Linux改改配置文件即可,不会LInux部署直接可以看上面的参考链接,很快就上手。

windows部署

        1.先将自己需要部署的前端项目打包成dist包(Linux环境需要打包成tar包进行解压,上面链接有教程)

一个nginx中部署两个前端,Nginx,Operation and maintenance,服务器,运维

        2.将dist包直接放在Windows中nginx安装目录下的html下。

一个nginx中部署两个前端,Nginx,Operation and maintenance,服务器,运维

        3.修改conf目录下的配置文件nginx.conf

一个nginx中部署两个前端,Nginx,Operation and maintenance,服务器,运维

一个nginx中部署两个前端,Nginx,Operation and maintenance,服务器,运维

        3.1配置文件nginx.conf(一个server模块代表该 HTTP 服务器配置了一个虚拟主机(Vritual Host)。),下列我写了两个server模块(两个虚拟主机),一个监听端口为3000.一个端口为3001,分别代表前台和后台的监听端口号,注意修改里面的root中的dist的存放路径监听端口号和location这三个地方


worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

	#定义一个新的 server 块,表示该 HTTP 服务器配置了一个虚拟主机(Vritual Host)。
	 server {   
		#add
		client_max_body_size 10m;
		#监听端口 80,这是 HTTP 服务器的默认端口。
        listen       3000;
		#指定该虚拟主机的域名是 localhost。在实际生产环境中,您需要输入实际域名。
        server_name  frontend;
		#输入localhost:3000直接访问前端的index首页		
        location / {
            add_header Access-Control-Allow-Origin *;
			add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
			add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
			if ($request_method = 'OPTIONS') {
			# 禁止OPTIONS
				return 204;
			}
            root ./html/frontend; #前端dist文件存储的位置D:/xxx/nginx-1.22.0/html/dist   ./html/dist(必须是dist的相对路径)
            index  index.html index.htm; 
			try_files $uri $uri/ /index.html;	
        }
		
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    	#定义一个新的 server 块,表示该 HTTP 服务器配置了一个虚拟主机(Vritual Host)。
	 server {   
		client_max_body_size 10m;
        listen       3001;
        server_name  backend;
        location / {
            add_header Access-Control-Allow-Origin *;
			add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
			add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
			if ($request_method = 'OPTIONS') {
			# 禁止OPTIONS
				return 204;
			}
            root ./html/backend; 
            index  index.html index.htm; 
			try_files $uri $uri/ /index.html;	
        }
      
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }   
    }
    include servers/*;
}

        4.启动nginx进行测试

一个nginx中部署两个前端,Nginx,Operation and maintenance,服务器,运维

        5进行测试localhost:3000和localhost:3001。

部署过程可能遇到的问题

        按照上面的方式进行部署两个前端项目,并且启动nginx过后发现两个项目都启动成功了。但是进行访问的时候总是显示连接失败或者连接超时,这时候再次使用curl ip地址:端口号(例如:localhost:3000)进行访问,如果能够访问到说明部署没有问题,而是防火墙的问题。那么对防火墙进行关闭即可,下面就是如何进行关闭防火墙的过程。

1windows查看是否启动成功

一个nginx中部署两个前端,Nginx,Operation and maintenance,服务器,运维

2Linux查看是否成功

输入netstat -tpln命令进行查看

一个nginx中部署两个前端,Nginx,Operation and maintenance,服务器,运维

3.查看防火墙是否开启

        在 Linux 操作系统中,可以使用以下命令来查看当前是否开启了防火墙:

sudo systemctl status firewalld

        如果输出结果中显示active (running),则表示防火墙是开启的;如果显示inactive (dead),则表示防火墙是关闭的。

        如果防火墙没有开启,可以使用以下命令来启动防火墙:

sudo systemctl start firewalld

        如果防火墙已经开启,可以使用以下命令来关闭防火墙:

sudo systemctl stop firewalld

        如果希望在系统启动的时候自动启动防火墙,可以使用以下命令:

sudo systemctl enable firewalld

        如果希望禁用防火墙自启动,可以使用以下命令:

sudo systemctl disable firewalld

4.通过上面的关闭防火墙的命令就可以关闭防火墙,这样你之前访问不到的项目现在就可以进行访问了。文章来源地址https://www.toymoban.com/news/detail-720941.html

到了这里,关于【运维】手把手教你在Linux/Windows系统使用Nginx部署多个前端项目【详细操作】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你在 Windows 环境中搭建 MQTT 服务器

    前些天要对接一家硬件商的设备数据,对方使用的 MQTT 协议点对点透传,所以又赶紧搭建 MQTT 服务器,写 .NET 程序接收数据等等,今天分享一下如何搭建 MQTT 服务器。 MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的通信协议,专门设计用于在低带宽

    2024年02月03日
    浏览(65)
  • 手把手教你在windows使用Docker搭建Minio[详细教程]

    目录 1什么是Minio 2安装Docker 3Docker搭建Minio 4.创建Minio容器并运行 5.进行访问 6安装可能出现的问题         MinIO是一个基于开源的对象存储服务器,MinIO的设计目标是提供高性能、高可用性和高可靠性的对象存储服务。MinIO可以作为一个独立的对象存储服务,也可以在Kuber

    2024年02月12日
    浏览(53)
  • 手把手教你在windows下源码编译Open3D

    首先不建议windows下源码编译,需要用C++的可以直接下载官网编译好的版本。熟悉vcpkg的,可以把open3d加到vcpkg使用,参考该博客。 cmake =3.20 python =3.6.0 visual studio =2017 Github下载open3d源码 打开源码,新建build文件夹 填写你的VS版本,例vs2022(17),open3d_install_directory使用当前路径

    2024年02月05日
    浏览(56)
  • 【Docker】手把手教你在windows使用Docker搭建Minio[详细教程]

    目录 1什么是Minio 2安装Docker 3Docker搭建Minio 4.创建Minio容器并运行 5.进行访问 6安装可能出现的问题         MinIO是一个基于开源的对象存储服务器,MinIO的设计目标是提供高性能、高可用性和高可靠性的对象存储服务。MinIO可以作为一个独立的对象存储服务,也可以在Kuber

    2024年01月19日
    浏览(60)
  • 手把手教你在linux中部署hadoop以及hadoop功能介绍

    我们在学大数据的时候hadoop是躲避不开的地方,所以如何在linux中部署hadoop,下面就是手把手教你如何部署hadoop。你只要复制粘体,然后按enter键就可以了。 准备:   安装Linux版本的服务器。可以参考中前半部分安装服务器的内容即可:VM部署CentOS并且设置网络_ZeroMaster的博客

    2024年02月03日
    浏览(59)
  • 手把手教你在linux环境下更换python的pip源

    搞python的肯定离不开各种各样的第三方包,比如爬虫,有requests,xpath,爬虫界的扛把子Scrapy;Web有django,flask,restframework啥的,还是挺多的,我们一般安装的方式都是pip install xx模块,但是我相信,你们肯定都遇到过这种情况。 如果我们从默认的 https://pypi.org/ 安装的过程非

    2024年02月12日
    浏览(49)
  • 手把手教你在linux中部署stable-diffusion-webui

            stable-diffusion-webui是什么就不用多说了,以下是安装步骤,我以linux系统为例介绍,windows系统大同小异,安装期间没有用到梯子,安装目录/opt/stable-diffusion-webui/。 1.安装Anaconda         stable-diffusion-webui要求python版本在3.8-1.10,找对应的Anaconda版本就可以了,Ana

    2024年02月03日
    浏览(51)
  • 手把手教你在Centos7.6系统安装mysql5.7

    需要安装对应系统适配的mysql,避免出现问题 我的是CentOS Linux release 7.6.1810 (Core) ,所以安装centos7.6对应的mysql5.7 点击链接在官网中获取适用的mysql文件,这里我找到的是mysql57-community-release-el7.rpm,其中mysql57代表mysql5.7,el代表centos,7代表centos的版本(因为未发布el7.6,所以用

    2024年02月03日
    浏览(71)
  • MATLAB :【12】手把手教你在Linux以命令行方式(静默方式/非图形化方式)安装MATLAB(正版)

    碎碎念: (我知道我已经鸽了两个月,但是已经攒了很多的稿子没有发) 大家好,由于实验室的服务器中没有提供MATLAB的计算资源( 事实证明是我不知道QAQ ),在Ubuntu中安装了非图形的MATLAB。 通过参考其他博主的思路,并且利用T大提供的正版资源,中间踩了不少坑,最终

    2024年02月09日
    浏览(44)
  • 【MMDeploy&MMPose】手把手教你在Windows上使用MMDeploy1.x进行ONNX和TensorRT的部署(Python篇)

    2023.9.8更新 C++ SDK篇已经发布,点击这里传送到文章 MMDeploy 提供了一系列工具,帮助我们更轻松的将 OpenMMLab 下的算法部署到各种设备与平台上。 MMDeploy 定义的模型部署流程,这里直接使用了官方文档的内容,如下图所示:  1)模型转换(Model Converter) 模型转换的主要功能是

    2024年01月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包