nginx:使用代理转发时,帖子不起作用

时间:2018-11-14 02:54:02

标签: nginx post nginx-location

尝试找出正确的nginx配置,以便它可以与url中的某些前缀一起使用。

以前使用以下工具。

  1. nginx conf

    location / {
            client_max_body_size 30M;
            proxy_http_version 1.1;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $proxy_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_pass http://172.17.0.2:3000/;
            proxy_redirect off;
    }
    

基本上,它重定向到端口为3000的Docker容器。

  1. html表单

  2. 提交的ajax

    event.preventDefault();

    var form = document.getElementById('request_form'),   form_data =新的FormData(form),   form_url ='/'+ $('#'+ request +'_form')[0] .action.split('/')。pop();

    $。ajax({   网址:form_url,   输入:“ POST”,   数据:form_data,   dataType:'json',   编码:true,   快取:false,   contentType:false,   processData:否 })

  3. 后端路由

    router.post('/ post_handler',function(request,response){

此时一切正常。现在,我需要在同一台机器上设置另一个Docker容器。所以我想也许我应该使用不同的URL来区分它们。

nginx conf

    location /service1 {
            client_max_body_size 30M;
            proxy_http_version 1.1;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $proxy_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_pass http://172.17.0.2:3000/;
            proxy_redirect off;
    }

我仍然可以获得正确的页面。但是我不知道如何正确设置帖子的URL。这就是我尝试过的。

var form = document.getElementById('request_form'),
  form_data = new FormData(form),
  form_url = '/service1/' + $('#' + request + '_form')[0].action.split('/').pop();

它不起作用。

0 个答案:

没有答案