Windows系统下如何使用nginx部署vue2项目
发布时间 - 2023-05-16 00:00:00 点击率:次第一步:下载安装nginx
1、首先我们要去nginx的官网下载windows版本的nginx
2、点击下载链接后会下载得到如下一个nginx的压缩包:
3、解压nginx压缩包,这里需要注意了哈,nginx的解压路径不能存在中文,否则nginx服务会无法正常启动的哈,不信你试试
4、我们双击nginx.exe文件启动服务,细心观察的小伙伴会发现有一个黑色的弹窗一闪而过就消失了,那这就启动就完成了。
5、然后我们打开浏览器访问:http://localhost 如果出现如下界面则表示nginx服务成功启动!
6、如果无法正常访问的话可以先查看nginx目录下logs里面的日志文件,
造成无法正常启动的原因可能有如下两点:
a、检查解压nginx的路径是否存在中文
b、打开cmd命令行窗口输入如下命令,查看80端口是否被占用了,nginx默认启动的端口是80端口
netstat -ano | findstr 0.0.0.0:80
如果输入上面命令出现如下内容则表示端口被占用
7、如果端口被占用,我们需要修改nginx的默认启动端口,使用记事本打开conf目录下的nginx.conf配置文件
在保存后,将server下的端口号80修改为8081,然后重新启动nginx目录下的nginx.exe文件
如果还是无法正常启动,可以查看nginx目录下的logs目录里面的错误日志,然后自行百度一下
8、下面来简单介绍一下nginx的几个常用命令:
注意:需要在nginx目录下才能执行这些命令:
a、启动nginx:
E:\nginx-1.22.0>start nginx 或 E:\nginx-1.22.0>nginx.exe
b、停止nginx:
E:\nginx-1.22.0>nginx.exe -s stop 或 E:\nginx-1.22.0>nginx.exe -s quit
c、重新启动nginx:
E:\nginx-1.22.0>nginx.exe -s reload
当修改了配置文件nginx.conf的
内容后,需要执行上面这条命令,修改的配置才会生效。
第二步:打包部署vue2项目
1、打包vue项目:
npm run build
2、执行上面命令后会把项目打包并输出到dist目录下(打包后的文件因个人而异,这里是我公司项目打包后dist目录下的内容)
3、在nginx目录下的html目录下新建一个static目录,并把刚刚打包后dist目录下所有文件都复制到static目录下
4、修改nginx.conf配置文件
担心图片你们复制不了,就把server里面添加的配置也粘贴到下面了:
server {
# nginx启动监听的端口
listen 8081;
# 可以是localhost和可以是本机ip地址,如果要给公司其他同事的电脑可以访问,需要 配置为本机的ip地址
server_name 192.168.1.104;
# 配置页面中发送的请求代理到后端接口
location /api {
#需要代理访问的后端服务器地址
proxy_pass http://10.8.5.42:8084;
#重写以/api为baseURL的接口地址
rewrite "^/api/(.*)$" /$1 break;
}
location / {
#程序根目录配置,也就是刚刚打包文件放置的目录
root E:\\nginx-1.22.0\\html\\static;
index index.html index.htm;
# 配置把所有匹配不到的路径重定向到index.html,vue-router的mode是history模式的情况下需要配置,否则会出现刷新页面404的情况
try_files $uri $uri/ /index.html;
}
}在这里再详细说明一下上面添加的这些配置信息:
假设我现在把我windows系统上的nginx服务器的配置文件修改成上面这样子,然后启动nginx服务器,当我在浏览器中输入http://192.168.1.104:8081的时候,因为我的nginx服务器配置文件中的listen配置的端口是8081,所以浏览器的发送的http://192.168.1.104:8081这个请求会被端口为8081的nginx服务进行处理,然后会被location / {} 匹配,然后nginx就会找配置的root 路径下的index.html文件,并响应给浏览器,这时浏览器就可以访问到我们项目的页面了。
这样页面就可以访问了,但是页面中发送的请求怎么进行处理呢?
在vue项目中当我们在页面中发送请求的时候,我们打开浏览器调试工具会看到,我们发送的请求的协议、域名和端口号其实是和访问页面的协议、域名和端口号是一样的,但是真正后端服务器的接口请求地址不是这样的。
这时候我们就需要使用nginx一个强大的功能了,没错就是反向代理,我们可以配置nginx.conf文件,实现把页面中发送的请求都通过nginx进行反向代理访问真实服务器(其实这也是一种跨域的解决方案)。
假设后端服务器的地址是http://10.8.5.42:8084,请求后端服务的登录接口是http://10.8.5.42:8084/accounts/login,然后前端页面中发送的登录请求地址是:http://192.168.1.104:8081/api/accounts/login?userName=%E6%B2%88%E5%BF%A0%E6%98%8E&password=123456,这时我们就可以在nginx.conf配置文件中加入如下内容:
看到这里有些伙伴可能就有疑问了,配置文件中的 :
rewrite "^/api/(.*)$" /$1 break;
具体是什么意思,这里我刚刚开始也不理解????,后来查阅了很多资料,最终就理解通了,
这段配置的作用就是重写我们的请求地址,因为我这里前端页面发送的登录请求接口http://192.168.1.104:8081/api/accounts/login有加了个/api的baseUrl,但是真实的后端服务的登录接口http://10.8.5.42:8084/accounts/login是没有这个/api前缀的,所以我在这里需要重写前端发送的请求地址,把/api给去掉
当我们在nginx.conf配置文件中添加了上面这些配置后,需要执行nginx.exe -s reload命令来载入我们修改的配置,修改了配置文件一定要记得执行这条命令哦!,如果执行这个命令时出现下面的报错的话,不要慌!
出现这个问题的原因是:你的nginx并未启动,所以无法加载配置文件,你先执行start nginx命令启动nginx再执行这条命令即可!
# vue
# windows
# nginx
# 配置文件
# 目录下
# 后端
# 无法正常
# 这条
# 重写
# 就可以
# 端口号
# 当我们
# 本机
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
如何制作一个表白网站视频,关于勇敢表白的小标题?
如何在IIS管理器中快速创建并配置网站?
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
nodejs redis 发布订阅机制封装实现方法及实例代码
Bootstrap整体框架之JavaScript插件架构
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
如何确保FTP站点访问权限与数据传输安全?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
C语言设计一个闪闪的圣诞树
Laravel如何实现API速率限制?(Rate Limiting教程)
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
JS实现鼠标移上去显示图片或微信二维码
中山网站推广排名,中山信息港登录入口?
浅谈javascript alert和confirm的美化
浅谈Javascript中的Label语句
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
韩国服务器如何优化跨境访问实现高效连接?
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
三星、SK海力士获美批准:可向中国出口芯片制造设备
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
利用python获取某年中每个月的第一天和最后一天
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
文字头像制作网站推荐软件,醒图能自动配文字吗?
高防服务器租用首荐平台,企业级优惠套餐快速部署
桂林网站制作公司有哪些,桂林马拉松怎么报名?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
JavaScript如何实现类型判断_typeof和instanceof有什么区别
php 三元运算符实例详细介绍
如何用搬瓦工VPS快速搭建个人网站?
Android中AutoCompleteTextView自动提示
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
下一篇:群晖docker能安装什么用
下一篇:群晖docker能安装什么用

