nginx反向代理实例

经过一个例子演示一下nginx是如何代理服务的,而且讲一下nginx.conf的关于server模块location模块的配置html

server模块:配置虚拟主机的相关参数,一个http中能够有多个servernginx

location模块:配置请求的路由,以及各类页面的处理状况tomcat

首先我在本地虚拟机安装了nginx和tomcat,启动后,此时可使用虚拟机ip地址访问tomcat服务器

虚拟机ip是:http://192.168.233.128spa

tomcat监听的端口是:8080代理

1.如今想经过nginx代理一下tomcat服务,使用nginx配置的虚拟主机地址来访问

(1)增长一个server 块,并在其中添加一个location快,以下code

server { listen 8089; server_name localhost; location / { # 只有一个/后面没有路径,表示访问tomcat首页 proxy_pass http://localhost:8080; 
# tomcat服务的路由 (由于个人nginx和tomcat部署在了同一台虚拟机,因此这里填的localhost,假如想代理其余服务器的服务,则填写程序所在服务器ip端口便可)
} }

这样,在访问时,使用虚拟主机的ip+端口便可访问  http://192.168.233.128:8089/server

(2)在原有server基础上添加一个location块,以下:htm

 server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; # location / { #注意:把原来的根路径的location注释掉了,这个页面是跳转到nginx的首页,由于不容许出现2个同样的location路径,不然会报错“nginx: [emerg] duplicate location "/" in /usr/local/nginx/conf/nginx.conf:63” # root html; # index index.html index.htm; #} location / { # 根路径 proxy_pass http://localhost:8080; # 请求转向本虚拟机的8080端口(即访问tomcat)
 }

此次,直接使用虚拟机的ip便可访问tomcat首页:http://192.168.233.128(不须要加端口,由于是80端口)blog

 2.在tomcat上部署了一个jenkins.war,经过nginx反向代理来访问

正常访问jenkins是:http://192.168.233.128:8080/jenkins

经过nginx代理,不加端口访问,只需在监听80端口的server块中添加一个location块

location /jenkins {                # /jenkins表示要访问的路由下的路径
              proxy_pass  http://127.0.0.1:8080;  # 请求转向本虚拟机的8080端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;  #获取真实ip
              proxy_connect_timeout   90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip
 proxy_redirect off; }

配置完成后重启nginx,使用http://192.168.233.128/jenkins进行访问便可

3.代理部署在另外一台服务器的程序,经过nginx所在服务器访问其服务

在监听80端口的server块中添加一个location块

location /ApprPhD {                # 访问程序时须要在ip后添加的路径
              proxy_pass http://192.168.0.XXX:3030; # 请求转向XXX服务器上的服务,结合/ApprPhd,表示访问 http://192.168.0.107:3030/ApprPhD proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;  #获取真实ip
              proxy_set_header REMOTE-HOST $remote_addr; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip
 proxy_redirect off; }

重启nginx服务后,使用以下连接访问:http://192.168.233.128/ApprPhD

相关文章
相关标签/搜索