场景:服务器端需要拿到浏览器中的url,但是这个url经过了nginx转发,默认拿到的是转发后的url,如果需要拿到之前的url,就需要配置proxy_set_header
location / { proxy_pass http://my_app_upstream; proxy_set_header Host $host; # ... }
以Ubuntu为例,编辑/etc/nginx/conf.d/<site-name>.conf
server { listen 80; server_name www.codedemo.club; error_log /mengyunzhi/log/baeldung.cn-nginx.log info; add_header Cache-Control public; location / { proxy_pass http://127.0.0.1:8000; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 转发host信息 proxy_set_header Host $host; } }
如果域名映射地址是wordpress,可能会出现跳转后的地址包含端口的情况,到wordpress管理端中修改url配置即可。