Nginx线上部署纯Html代码

首先说明⭐

  • 前端代码,纯Html,未使用任何框架
  • 没有后端配置
  • 线上环境Docker安装Nginx,Nginx已经指向两个前端项目
  • 链接服务器的软件是 MobaXterm

需求,现在Nginx再指向一个前端Html项目

一、将前端项目准备好🌙

注意:

  • index.html首页文件要放在最外层,否则在配置nginx指向不能读取到外部资源
  • 只是个人建议:虽然是纯html文件,但自己创建文件夹时,静态资源文件可以放在 static 文件里面,整洁清晰
  • 以下示例是主要说index位置

如下:【反例】

myTest(文件名)
	- img
	-  html
		- index.html
		- hello.html
		
//此时nginx配置指向 index.html 文件, img里面的资源将会读取不到		

【正确方式】

myTest(文件名)
	- img 
	-  html
		- hello.html
	- index.html (外层)

二、Nginx配置 🏮

① 打开服务器,我的Nginx是在Docker容器环境下,查看Nginx的挂载信息【如果你记得你的文件夹位置,可以省略😳】

//查看nginx配置
[root@ecs-dead ~]# docker inspect nginx

//只复制了挂载信息
//Source 是挂载到的位置【你服务器的文件夹位置】
...
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/data/docker/nginx/conf.crt",
                "Destination": "/etc/nginx/conf.crt",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/data/docker/nginx/conf.d",
                "Destination": "/etc/nginx/conf.d",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/data/docker/nginx/nginx.conf",
                "Destination": "/etc/nginx/nginx.conf",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/data/docker/nginx/html",
                "Destination": "/usr/share/nginx/html",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/data/docker/nginx/logs",
                "Destination": "/var/log/nginx",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

...

② 配置

//进入挂载文件夹
[root@ecs-dead ~]# cd /data/docker/nginx/html/

//创建防止项目的文件夹【名字不强求和项目名一致,为了方便辨认写一致挺好】
[root@ecs-dead html]# mkdir myTest

//查看文件夹
[root@ecs-dead html]# ls

//进入myTest文件夹
[root@ecs-dead html]# cd myTest

//将myTest文件夹的里面的内容,直接拖拽进这个文件夹

此图是其他文件的,与案例类似, leave位置就是myTest位置
在这里插入图片描述

//返回配置文件 conf.d文佳夹
[root@ecs-dead html# cd /data/docker/nginx/conf.d/
[root@ecs-dead conf.d]#

//进入你的配置文件
[root@ecs-dead conf.d]# vim default.conf

--这是配置文件
-- i --> 进入编辑模式
-- 编辑完后 按 esc 退出编辑
-- :wq 保存并推出  :q! 不保存强制退出

server {
    listen 443 ssl;
        server_name ****; #服务域名 我就省略了

        ssl_certificate   conf.crt/**com.pem;
        ssl_certificate_key  conf.crt/**lass.com.key;
        ssl_session_timeout 60m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;


    location / {
        root   /usr/share/nginx/html/mole-admin;
        index  index.html index.htm;
    }

	# 关键点 不要随便设置root, 如果设置了,那其他文件夹的指向不能再写root->应写 alias⭐
    location /mytest {
        alias   /usr/share/nginx/html/myTest;
        index  index.html index.htm;
    }
}

注释:
//RTT【(Round-Trip Time)往返时间】
//这里是安全和性能的核心,需要长期关注定期更新。另外特别注意的是HTTPS里面耗时的有两个地方一个是网络方面的RTT就是延时,一个是密钥交换优化需要在这两个地方下功夫
ssl_ciphers (共18个,ECDHE、DHE、AES开头个6个)

//让服务器选择要使用的算法套件
ssl_prefer_server_ciphers on;

//考虑到APP操作习惯及安全性暂定60分钟,这个默认是5分钟,一般为30分钟到4小时,如果是网页形式可以时间更长一般不超过24小时,多了有安全隐患
ssl_session_timeout 60m;

//证书,客户端解密使用,服务器证书和中间证书合并到一个文件,不需要根证书;另外1.7.3版本增加了新指令ssl_password_file可以支持带密码的私钥
ssl_certificate   conf.crt/**com.pem;

//私钥,服务器加密使用
ssl_certificate_key  conf.crt/**lass.com.key;

//苹果APP只支持TLSv1.2,会优先使用TLSv1.2,考虑到客户端兼容性,其他2各也加上
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;

三、访问页面 😊

然后
服务器:curl 域名/mytest/index.html
浏览器:域名/mytest/index.html
即可访问到页面

在这里插入图片描述
在这里插入图片描述

四、参考链接

HTTPS配置优化及注意点 – https://www.jianshu.com/p/9c3095f034f7

使用nginx实现用在同域名下部署多个前后端分离项目 – https://www.cnblogs.com/sueyyyy/p/14525066.html

location之alias浅析 – https://www.cnblogs.com/williamwsj/p/13891494.html

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Nginx部署多个Vue项目,可以通过配置不同的路径来区分。 首先,确保每个Vue项目都已经成功地打包生成了静态文件。然后,在Nginx的配置文件中添加对应的配置。 以下是一个简单的示例: 1. 假设我们有两个Vue项目,一个叫做Project1,另一个叫做Project2。 2. 在Nginx的配置文件(通常是在/etc/nginx/nginx.conf或者/etc/nginx/conf.d/default.conf)中,找到 server 部分。 3. 在 server 部分下,添加如下配置: ``` location /project1 { alias /path/to/project1/dist; try_files $uri $uri/ /project1/index.html; } location /project2 { alias /path/to/project2/dist; try_files $uri $uri/ /project2/index.html; } ``` 4. 在上述配置中,/project1 和 /project2 是访问时的路径,可以根据实际需求自行修改。 5. /path/to/project1/dist 和 /path/to/project2/dist 是各自Vue项目打包生成的静态文件所在的目录路径。 6. try_files $uri $uri/ /project1/index.html; 和 try_files $uri $uri/ /project2/index.html; 是为了处理历史路由问题,确保刷新页面时能正确加载对应的index.html文件。 7. 保存配置文件并重新加载Nginx配置:sudo service nginx reload。 8. 最后,通过访问 http://your-domain/project1 和 http://your-domain/project2,即可访问到不同的Vue项目。 通过以上配置,我们就可以在同一个Nginx服务器上部署多个Vue项目,并通过路径区分。当然,这只是一个简单示例,根据实际情况,可能还需要根据具体需求进行更详细的配置。 ### 回答2: 在nginx线上部署多个vue项目并进行路径区分的方法如下: 1. 配置nginx:打开nginx配置文件(通常为nginx.conf或者sites-available/default),添加多个location块来分别指定每个项目的路径。例如: ``` server { listen 80; server_name example.com; location /project1 { alias /path/to/project1/dist; try_files $uri $uri/ /project1/index.html; } location /project2 { alias /path/to/project2/dist; try_files $uri $uri/ /project2/index.html; } } ``` 这里使用alias指令来指定项目的实际路径,try_files指令用于处理vue项目的路由。 2. 构建vue项目:在本地使用vue-cli构建每个vue项目,并将构建后的静态文件(通常在dist目录下)复制到对应的路径下。 3. 重启nginx服务:保存配置文件后,通过命令行或者控制面板重启nginx服务,使配置生效。 4. 访问项目:现在可以通过浏览器访问每个vue项目了。例如,如果nginx服务器的IP地址是192.168.0.1,那么可以通过访问http://192.168.0.1/project1来访问第一个项目,访问http://192.168.0.1/project2来访问第二个项目。 这样就通过nginx实现了多个vue项目的线上部署,并且通过路径进行了区分。 ### 回答3: nginx是一个轻量级的高性能的HTTP和反向代理服务器,可以实现静态资源的快速访问和负载均衡。要在nginx部署多个vue项目并进行路径区分,可以按照以下步骤进行。 1. 服务器环境准备:确保服务器上已经安装了nginx,并且配置好了要使用的域名。 2. 创建多个vue项目:每个项目对应一个不同的路径,例如项目1对应路径"/project1",项目2对应路径"/project2"等。 3. 编译vue项目:在本地使用"npm run build"命令编译每个vue项目,并将编译后的文件保存在不同的目录中。 4. 配置nginx:打开nginx的配置文件,一般是位于/etc/nginx/nginx.conf或者/etc/nginx/conf.d/default.conf。在"server"块中添加以下代码,用于区分不同的项目路径: ``` server { listen 80; server_name your_domain.com; location /project1 { root /path/to/project1/dist; try_files $uri $uri/ /project1/index.html; } location /project2 { root /path/to/project2/dist; try_files $uri $uri/ /project2/index.html; } # 其他项目配置... } ``` 5. 重新加载nginx配置:保存并关闭配置文件后,使用命令"sudo service nginx reload"重新加载nginx的配置,使其生效。 6. 验证部署:访问服务器的域名,加上不同的路径后缀,例如"http://your_domain.com/project1"和"http://your_domain.com/project2",验证是否能够正确访问到对应的vue项目。 通过以上步骤,我们可以在nginx部署多个vue项目并进行路径区分,以实现在一个服务器上同时运行多个项目的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值