# Nginx简易使用
Nginx是一款十分轻量级的 HTTP 服务器,其主要功能有Web服务开启、反向代理、Web缓存等,前端主要借助它开启一个本地服务和接口反向代理功能,这里也就简单讲解一下它的这两个使用方法。
# 一、文件下载
前端使用直接把Nginx下载到本地就行了,到官网 Nginx (opens new window) 找一个版本下载,然后解压到本地就可以使用了。
打开查看其目录结构如下,nginx.conf为配置文件,不论开启本地服务还是配置反向代理都在此文件中进行配置,html为开启本地服务指定的文件夹,部署时把静态文件放进去,nginx.exe就是开启服务的应用的程序,可以直接点击运行也可以使用命令。
├── conf
│ ├── nginx.conf # 配置文件
│ └── ...
├── contrib # 环境配置文件
├── docs #
├── html # web文件
├── logs # 日志文件
├── temp #
└── nginx.exe # nginx应用程序
# 二、开启本地服务
我们可以把Vue项目打包生成的dist文件或者静态文件部署到nginx上开启本地服务进行查看,开启服务主要有以下步骤。
# 1、指定静态文件
指定静态文件就是Nginx服务要启动的前端页面,默认直接把静态文件放到html文件夹中就可以了,或者和在服务器上部署一样,在nginx.conf文件中指定root为某个静态文件目录。
# 2、配置nginx.conf
要启动服务需要在nginx.conf文件的http模块中指定server的监听端口、地址、和启动目录,我们打开nginx.conf文件查看有一个默认监听模块server,这个server监听的就是html中的静态文件开启http://localhost:80服务。
# http块 可以嵌套多个server
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80; #监听端口
server_name localhost; # 监听服务地址
location / { # 指定静态文件
root html; # 默认html文件夹,也可以指定其他本地目录
index index.html index.htm; # 首页文件
}
# 反向代理
#location /api {
# proxy_pass http://127.0.0.1;
#}
}
}
# 3、开启服务
配置好配置文件后,不要直接双击nginx.exe程序,双击开启会导致无法更新和停止,需要手动结束进程才行,我们使用命令来开启服务,回到nginx.exe文件夹下打开终端执行下面命令就开启了,然后打开网页访问http://localhost:80就可以看到启动的页面了。
# 开启服务
start nginx
# 或者
./nginx.exe
# 三、监听多个服务
nginx可以同时开启多个服务,只要在http模块中添加多个server 就行,listen和server_name都可以配置不同的端口和地址,root中也可以指定不同的静态文件目录,可以是html中的子文件,也可以是电脑本地的其他文件,root指定的路径最好不要包含中文和空格或者特殊符号。
# http块 可以嵌套多个server
http {
include mime.types;
default_type application/octet-stream;
# 监听80端口
server {
listen 8000;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
# 监听3000端口
server {
listen 3000;
server_name localhost;
location / {
root D:/GitProjects/blog; # 本地文件
index index.html index.htm;
}
location ~ ^/(\w+/\blog)/ {
try_files $uri $uri/ /$1/index.html;
}
location /shop-api {
proxy_pass http://xxx.com/shop-api;
}
}
}
# 四、反向代理
Vue项目中出现跨域我们可以在vue.config.js中配置proxy代理进行解决,如果不是Vue项目或者多个测试项目都需要指定代理地址,我们就可以借助nginx的proxy_pass进行全局反向代理,只要在你电脑上监听到请求某个地址就可以进行反向代理。
server中的端口和地址可以是你开启nginx本地服务,也可以指定你Vue项目启动的服务,都可以进行监听和代理到某个地址,代理的地址不在一个局域网下也可以进行反向代理。
# http块
http {
include mime.types;
default_type application/octet-stream;
# 监听80端口
server {
listen 8000;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
# 反向代理
location /content {
proxy_pass http://shimo.com;
}
}
server {
listen 8080; #监听端口
server_name 192.168.1.229; # 监听服务地址
# 反向代理
location /api {
proxy_pass http://baidu.com;
}
}
}
# 五、常见命令
# 开启服务
start nginx
# 重新加载
nginx -s reload
# 快速停止nginx
nginx -s stop
# 平稳停止nginx
nginx -s quit
# 测试配置文件是否有语法错误
nginx -t
# 如果提示报错使用 ./nginx
./nginx -s reload
./nginx -s quit
./nginx -s quit