下载 http://nginx.org/en/download.html nginx分为许多版本,一般使用稳定版
windows下载 最后一个,不要下第一个用不了
目录长这样
最后一个文件是自己写的关闭nginx的bat文件
@echo off
echo 正在结束Nginx及其子进程……
taskkill /T /F /IM nginx.exe
echo 操作完成!
pause
直接双击exe可以运行,访问地址如下,默认是本机的80端口,通常需要修改,改成未被占用的端口
nginx-conf 主要配置如下,其他的基本不用改
server {
listen 8081;
server_name localhost;
#charset koi8-r; //字符集 utf-8 路径中能出现中文
#access_log logs/host.access.log main;
location / {
root html; //加载静态资源的路径 这里是加载html文件夹下所有,相对路径以exe所在的路 // 径为参考点,而非本配置文件的所在地址
index index.html index.htm; 默认index主页
}
#error_page 404 /404.html; 发生404错误加载的页面
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
完成以上配置就能在浏览器输入localhost:8081/路径 ,localhost;8081 访问到了html文件夹,直接进入接下来的文件夹,到你设置的index主页处,这样就能访问你工程的主页,剩下的页面路由,根据你使用的vue或者angular 框架决定,设置路由时,可以设置默认跳转路由,这样直接输 localhost:8081
就能跳转到默认路由的页面
关于nginx 代理
nginx最重要的是代理转发
以下定义了服务器地址,一个是本机的,另一个是远程的,怎么知道什么时候发远程什么时候发本地呢,一般本地测试时需要发本地,读取本的json文件,里面存着假数据用于页面效果显示,实现简单的demo功能,远程则是真正的和后台交互,这里是通过上下文区分的
upstream localProxy {
server 127.0.0.1:8083;
}
upstream serverProxy {
server 10.1.1.38:9076;
}
//以下是pmobile和local上下文,就是发的。do交易名,也可以不以 .do结尾看后台约定 这个交易名就是默认会在前面带的,一般是为了区分系统,后台可能会有多个系统,比如手机和pc 两套
location /pmobile/ {
proxy_pass http://serverProxy/pmobile/; proxy_redirect off;
proxy_cookie_path /pmobile /pmobile;
}
//这里的发本地的交易,将.do交易重写为读取本地的json
location /local/ {
rewrite ^(.*).do$ $1.json last;
proxy_pass http://localProxy/; proxy_redirect off;
}nginx中也可以使用正则,这里的正则不用 / / 包裹起来,还添加了一部分特殊的
~: #表示在匹配过程中区分大小写字符,(可以通过正则表达式匹配),满足匹配条件为真,不满足为假。
~: #表示在匹配过程中不区分大小写字符,(可以通过正则表达式匹配),满足匹配条件为真,不满足问假。
!~:#区分大小写不匹配,不满足为真,满足为假,不满足为真。
!~:#为不区分大小写不匹配,满足为假,不满足为真。
^~ :#如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。
下面这个就是匹配 json文件 ,区分大小写,通常和读取本地的json一起使用,用来加载本地json文件
location ~ (.*.json) {
root …/static/data;
default_type application/json;
error_page 405 =200 $1;
}