• nginx反向代理实例


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

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

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

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

    虚拟机ip是:http://192.168.233.128

    tomcat监听的端口是:8080

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

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

    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/

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

        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端口)

     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:30;  # 请求转向XXX服务器上的服务,结合/ApprPhd,表示访问 http://192.168.0.XXX:30/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

  • 相关阅读:
    [CF895C]Square Subsets
    Brainf**k(一位数求max)
    [CF1019A]Elections
    [LOJ #2538][PKUWC 2018]Slay the Spire
    [CF911F]Tree Destruction
    [bzoj4832][Lydsy1704月赛]抵制克苏恩
    [洛谷P1420]最长连号
    [bzoj4872][Shoi2017]分手是祝愿
    [洛谷P1887]乘积最大3
    [洛谷P3743]kotori的设备
  • 原文地址:https://www.cnblogs.com/hanmk/p/9289069.html
Copyright © 2020-2023  润新知