一、nginx相关命令
在nginx.exe的目录下执行命令
启动:
nginx -s start
关闭:
nginx -s stop
二、先了解location 的alias 和root 参数的区别
若按照以下配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件
location /img/ {
alias /var/www/image/;
}
若按照以下这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件
location /img/ {
root /var/www/image;
}
三、普通转发请求相关示例
在nginx.conf文件的server 中新增代码,localhost配置为root方式。
访问localhost:端口号/文件名的请求时会指向C:/video/目录下的文件,但是如果路径为localhost:端口号/test/文件名是会指向C:/video/test/目录下的文件,这点要注意,下面有说明
location ~ .*\.(gif|jpg|pdf|jpeg|png|bmp|mp4)$ {
#root D:/nginx-1.15.5/temp/images/;#指定图片存放路径(可以放在nginx文件夹路径里也可以放其他p盘)
root C:/video/;
}
如图:
修改nginx.conf文件
查看需要转发的资源文件是否存在对应的存放位置
访问对应的链接
四、localhost配置为alias方式
访问/test开头的请求时会指向D:/uploadExcel/目录下的文件
location /test/ {
alias D:/uploadExcel/;
allow all;
autoindex on;
}
五、正则匹配转发请求相关示例
该localhost会匹配 以/test开头,以 *.指定后缀名的请求,该请求会寻找 D:/uploadExcel/test/目录下的文件,其实就是root的路径加上了请求的路径形成了请求实际访问的文件地址。
location ~ /test/(.*\.(gif|jpg|pdf|jpeg|png|bmp|mp4|xlsx))$ {
root D:/uploadExcel/;
}
该localhost会匹配 以/test4开头,以 *.指定后缀名的请求,该请求会寻找 D:/uploadExcel/目录下的文件,alias 区别与root,它不会加上请求的路径作为实际访问的地址,$1表示正则表达式中的第一个括号内匹配的内容
location ~ /test4/(.*\.(gif|jpg|pdf|jpeg|png|bmp|mp4|xlsx))$ {
alias D:/uploadExcel/$1;
}
六、以指定路径转发请求相关示例
该localhost会匹配 以/nps-api/开头的请求,该请求转发请求到http://47.xxx.xxx.91:60004/路径下,同时转发时会去除/nps-api路径,如请求http://localhost:8088/nps-api/membersadmin/looktestListerprise?IMGID=01,该请求相当于请求http://47.xxx.xxx.91:60004/membersadmin/looktestListerprise?IMGID=01。(需要开启对应的防火墙端口如443,如果是云服务器还需要再对应厂商服务器安全组或防火墙中打开,检查域名或IP端口是否打开可使用以下在线工具检测:http://coolaf.com/tool/port)
location /nps-api/ {
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://47.xxx.xxx.91:60004/;
}
根据路径动态匹配转发端口,(\d+)表示一个捕获组,\d表示匹配一个数字字符,+表示匹配一个或多个数字字符。因此,(\d+)会匹配一个或多个连续的数字字符。动态变量$dynamic_port。该localhost会匹配 以/dynamic-nps-api/(\d+)开头的请求,该请求转发到http://47.xxx.xxx.91:$dynamic_port/路径下,根据路径动态选择端口,同时使用rewrite去除/dynamic-nps-api/(\d+)/路径,如请求http://localhost:8088/dynamic-nps-api/60001/membersadmin/looktestListerprise?IMGID=01,该请求相当于请求http://47.xxx.xxx.91:60001/membersadmin/looktestListerprise?IMGID=01,请求http://localhost:8088/dynamic-nps-api/60004/membersadmin/looktestListerprise?IMGID=01,该请求相当于请求http://47.xxx.xxx.91:60004/membersadmin/looktestListerprise?IMGID=01。(需要开启对应的防火墙端口如443,如果是云服务器还需要再对应厂商服务器安全组或防火墙中打开,检查域名或IP端口是否打开可使用以下在线工具检测:http://coolaf.com/tool/port)
location ~ ^/dynamic-nps-api/(\d+) {
set $dynamic_port $1;
rewrite ^/dynamic-nps-api/(\d+)(.*)$ $2 break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://47.xxx.xxx.91:$dynamic_port;
}