【nginx】配置反向代理
原创
©著作权归作者所有:来自51CTO博客作者wx636dc453ed367的原创作品,请联系作者获取转载授权,否则将追究法律责任
以MacOS系统为例,这里只是记录最简单版本,仅用于本地测试。安装推荐使用homebrew。配置文件默认为/usr/local/etc/nginx/nginx.conf。
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log logs/access.log main;
keepalive_timeout 65;
include /Users/miracle/nginx/*.conf;
}
在nginx.conf配置文件中,配置了http模块,其下的server模块配置使用include方式导入。这样可以将不同域名的配置模块化,结构更清晰。下面是my.test.com域名的配置:
upstream backend {
server 127.0.0.1:8080;
}
server {
listen 8081;
server_name my.test.com;
location / {
proxy_pass http://backend;
}
}
首先定义了名为backend的upstream,里面只配置了一台http服务器。然后是server模块的配置,监听了8081端口,并且将该域名下的全部请求转发至127.0.0.1:8080下。另外,upstream是全局共享的,如果其他模块配置了同名的upstream,会报错。还有,my.test.com这个域名默认是无法解析的,需修改本地hosts文件。
运行nginx -s reload命令重启nginx。
我在本地起了一个springmvc的应用,监听的是8080端口。那么直接访问如下url会失败
http://my.test.com:8081/springmvcxml/hello
但是由于在nginx配置了反向代理,所以请求可以被响应。
curl http://my.test.com:8081/springmvcxml/hello
hello