前言
最近项目中经常用到反向代理,以前用过apache,tomcat等等,但是感觉配置比较繁琐,不太好用,于是改用了一下nginx。
安装
如果你的电脑有brew就再简单不过了:
brew install nginx
启动nginx ,我们打开命令终端执行:
sudo nginx ;
访问localhost:8080 发现已出现nginx的欢迎页面了。
安装完成后,相信很多人对配置文件和安装位置会比较困惑,因为有点难找:
配置文件位置:
/usr/local/etc/nginx
常用命令
nginx -V 查看版本,以及配置文件地址
nginx -v 查看版本
windows安装就更简单了,下载zip包打开既可以使用了:
下载链接:http://nginx.org/download/nginx-1.8.0.zip
启动有三种方法:
一、双击nginx.exe图标,可见黑窗口一闪而过,启动完毕。
二、命令行到nginx目录,输入nginx启动。(注,此方式命令行窗口无任何提示,且被锁定)
三、命令行到nginx目录,输入start nginx启动,此方式不锁定
反向代理配置
在nginx中配置proxy_pass时,如果是按照^~匹配路径时,要注意proxy_pass后的url最后的/,当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。
location ^~ /my_food/
{
proxy_set_header Host localhost:5000;
proxy_pass http://localhost:5000/;
}
如果我们访问:
http://localhost:8080/my_food/index.html
会被反向代理到:
http://localhost:5000/index.html
配置文件的位置要放在对应的监听端口下,比如:
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location ^~ /my_food/
{
proxy_set_header Host js.test.com;
proxy_pass http://localhost:3000/;
}
}
OK了!