在官网下载好nginx的安装包后,解压后
CMD打开
start nginx
是启动命令
nginx -s stop
停止服务
nginx -s reload
如果重写了nginx.conf文件,要执行这条命令
正常情况下
成功启动和成功停止服务长这样
错误情况&解决
- 如果
nginx -s stop
失败
nginx: [error] CreateFile() “V:\Web\16 nginx\nginx/logs/nginx.pid” failed (2: The system cannot find the file specified)
借助命令
查看与nginx相关的端口
tasklist /fi "imagename eq nginx.exe"
停止nginx进程
taskkill /f /t /im "nginx.exe"
在conf文件中看它的默认端口
比如我这里就不是80端口,而是5000端口。
在浏览器地址栏中输入 http://localhost:5000
正常情况下是nginx默认的页面(我这里是已经部署在上面了)
vue项目部署
在vs code中 pnpm install build
文件目录中会出现dist
文件夹,把dist文件夹下的所有文件【替代】nginx html目录下的所有文件
因为vue项目中,我使用了vite进行反向代理,但是在实际项目上线后是没有用的,所以要借助nginx。
vite反向代理的逻辑
vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
// import basicSsl from '@vitejs/plugin-basic-ssl'
export default defineConfig({
server:{
// host: '0.0.0.0',
// https: true,
proxy: {
'/binance':{
target: 'https://api.binance.com',
changeOrigin: true,
// secure: true, // 确保代理使用 HTTPS 请求
// protocolRewrite: 'https',
rewrite: (path) => path.replace(/^\/binance/, '')
},
'/rootdata':{
target: 'https://api.rootdata.com/open/ser_inv',
changeOrigin: true,
rewrite: (path)=>path.replace(/^\/rootdata/, ''),
secure: true // 确保代理使用 HTTPS 请求
},
'/gecko':{
target: 'https://api.coingecko.com/api/v3/simple/price',
changeOrigin: true,
// secure: false, // 确保代理使用 HTTPS 请求
// protocolRewrite: 'https',
rewrite: (path) => path.replace(/^\/gecko/, '')
},
'/atguigu': {
target: 'http://sph-api.atguigu.cn',
changeOrigin: true,
// secure: false, // 确保代理使用 HTTPS 请求
// protocolRewrite: 'https',
rewrite: (path) => path.replace(/^\/atguigu/, '')
}
}
},
plugins: [
vue(),
// basicSsl()
],
resolve: {
alias: {
"@": path.resolve("./src") // 相对路径别名配置,使用 @ 代替 src
}
}
})
vue文件
import axios from 'axios';
async function getBTCPrice() {
try {
const response = await axios.get('/binance/api/v3/ticker/price', {
params: { symbol: 'BTCUSDT' }
});
console.log('当前 BTC 价格:', response);
} catch (error) {
console.error('获取价格时出错:', error);
}
}
const test = ()=> {
getBTCPrice()
}
nginx.conf
这个文件中配置反向代理
源文件删除所有的注释其实就几行:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 5000;
server_name localhost;
location / {
root html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /other/ {
root html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /template {
rewrite ^.+template/?(.*)$ /$1 break;
proxy_pass http://192.168.245.203:10001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
以 /atguigu 这个路径为例
① nginx.conf中添加下图这句话,注意路径加斜杠表示/atguigu这个路径最后没有(https://blog.csdn.net/yavlgloss/article/details/139503686)。②在CMD中 nginx -s reload
。③在页面中发现网络请求成功