前段时间把整个VPS都docker化了,博客也搞上去了。
一个大的nginx使用proxy_pass转发到各个container。
一开始没啥问题,后来发现,WordPress评论时会记录IP,而现在是都变成了nginx转发器容器的IP,而不是用户的真实ip。
查看所有文章页面的翻页按钮,显示的是博客容器的IP。
这个是nginx设置的问题,一时间找不到什么教程。考虑到博客这种小网站,我决定采取简单粗暴的方法。
在proxy_pass那里,加入
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
这个的意思是把这些东西也转发过去。
打开wp-config.php,加入
if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $http_x_headers = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] ); $_SERVER['REMOTE_ADDR'] = $http_x_headers[0]; } $_SERVER['SERVER_NAME'] = "superlb.net"; $_SERVER['HTTP_HOST'] = "superlb.net";
简单来说就是硬编码,因为我博客的域名啥的也不会变。