|
升級了論壇3.5版本,發現IP出現問題了;弄了兩天,才弄好;
論壇自身是apache + php 5.6 的配置;
前面還有nginx代理;
正確配置如下;
1. 放開安全限制,ip接收其他參數頭;
config/config_global.php
- $_config['security']['onlyremoteaddr'] = 0; //默認為1,表示只接受remote addr參數頭;
復制代碼 2. 修改ip相關配置參數;
- $_config['ipgetter']['setting'] = 'header';
- $_config['ipgetter']['header']['header'] = 'HTTP_X_REAL_IP';
復制代碼
3. nginx配置
- location / {
- client_max_body_size 1000m;
- proxy_pass http://10.1.9.5:8080;
- proxy_set_header Host $host:$server_port; //論壇非標準端口,代理時需要添加這個東東;
- proxy_set_header X-REAL-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
復制代碼 4. 測試文件
- <?php
- class ip_getter_header {
- public static function get($s) {
- if (empty($s['header'])) {
- return $_SERVER['REMOTE_ADDR'];
- }
- $ip = isset($_SERVER[$s['header']]) ? $_SERVER[$s['header']] : $_SERVER['REMOTE_ADDR'];
- return $ip;
- }
- }
- foreach ($_SERVER as $key => $value) {
- echo "$key: $value<br>";
- }
- $customHeader = 'aaaaa';
- $ip = ip_getter_header::get(['header' => $customHeader]);
- echo "<Br><Br>Client IP Address: " . $ip;
- $customHeader2 = 'HTTP_AAAAA';
- $ip2 = ip_getter_header::get(['header' => $customHeader2]);
- echo "<Br>Client IP Address2: " . $ip2;
- ?>
復制代碼
|
|