尝试找出正确的nginx配置,以便它可以与url中的某些前缀一起使用。
以前使用以下工具。
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容器。
html表单
提交的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:否 })
后端路由
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();
它不起作用。