11977d437507d035090891d94a39b9be2eae4201
  cloudflare/CloudFlare Tunnels/Nginx\343\201\247\350\250\252\345\225\217\350\200\205\343\201\256IP\343\202\242\343\203\211\343\203\254\343\202\271\343\202\222\350\250\230\351\214\262\343\201\231\343\202\213.md
			| ... | ... | @@ -0,0 +1,54 @@  | 
        
| 1 | +- CloudFlare Tunnelsによってインターネットアクセス可能。  | 
        |
| 2 | +- NginxによってWebページを公開している。  | 
        |
| 3 | +  | 
        |
| 4 | +以上の状態だと、`/var/log/nginx/access.log`に記録されるログは、全てのリクエストが`127.0.0.1`から来ているものとして記録される。オリジナルのIPアドレスを復元したい場合、以下の手順を実行する必要がある。  | 
        |
| 5 | +  | 
        |
| 6 | +1. `nginx-cloudflare-real-ip`のセットアップ  | 
        |
| 7 | +  | 
        |
| 8 | +    `nginx-cloudflare-real-ip`はNginx用のconfigを生成してくれるスクリプトのようだ。中身を見てみたが、CloudFlareのIPアドレス一覧ページをパースしてNginxコンフィグファイルを生成する、至ってシンプルなシェルスクリプトだし、500スター程度付いているので使っても大丈夫だろう。  | 
        |
| 9 | +      | 
        |
| 10 | +    ```  | 
        |
| 11 | +    $ git clone https://github.com/ergin/nginx-cloudflare-real-ip.git  | 
        |
| 12 | +    $ cd nginx-cloudflare-real-ip  | 
        |
| 13 | +    $ sudo mkdir /opt/scripts  | 
        |
| 14 | +    $ sudo cp sudo cp cloudflare-sync-ips.sh /opt/scripts/  | 
        |
| 15 | +    $ sudo chmod +x /opt/scripts/cloudflare-sync-ips.sh  | 
        |
| 16 | +    ```  | 
        |
| 17 | +  | 
        |
| 18 | +    実行してみる。  | 
        |
| 19 | +    ```  | 
        |
| 20 | +    $ sudo /opt/scripts/cloudflare-sync-ips.sh  | 
        |
| 21 | +    ```  | 
        |
| 22 | +      | 
        |
| 23 | +    `/etc/nginx/cloudflare`が追加されているはず。  | 
        |
| 24 | +      | 
        |
| 25 | +  | 
        |
| 26 | +1. `/etc/nginx/nginx.conf`の編集  | 
        |
| 27 | +  | 
        |
| 28 | +    [README.md](https://github.com/ergin/nginx-cloudflare-real-ip/blob/master/README.md)に従い、`/etc/nginx/nginx.conf`内の`http{....}`ブロック内に以下を追記する。  | 
        |
| 29 | +    ```  | 
        |
| 30 | +    include /etc/nginx/cloudflare;  | 
        |
| 31 | +    set_real_ip_from 127.0.0.1/32;  | 
        |
| 32 | +    ```  | 
        |
| 33 | +  | 
        |
| 34 | +1. cronによるIPアドレスレンジの自動更新をセットアップ  | 
        |
| 35 | +  | 
        |
| 36 | +    ```  | 
        |
| 37 | +    $ sudo crontab -e  | 
        |
| 38 | +    ```  | 
        |
| 39 | +      | 
        |
| 40 | +    以下を追記。  | 
        |
| 41 | +    ```  | 
        |
| 42 | +    # Auto sync ip addresses of Cloudflare and reload nginx  | 
        |
| 43 | +    30 2 * * * /opt/scripts/cloudflare-ip-whitelist-sync.sh >/dev/null 2>&1  | 
        |
| 44 | +    ```  | 
        |
| 45 | +    これでもしCloudFlareのIPアドレスのレンジが変わったとしても、自動的に追従してくれるはず。  | 
        |
| 46 | +  | 
        |
| 47 | +  | 
        |
| 48 | +1. Nginxの再起動  | 
        |
| 49 | +  | 
        |
| 50 | +    ```  | 
        |
| 51 | +    $ sudo systemctl restart nginx  | 
        |
| 52 | +    ```  | 
        |
| 53 | +  | 
        |
| 54 | +1. `/var/log/nginx/access.log`を見て、訪問者の実際のIPアドレスになっているか確認  | 
        |
| ... | ... | \ No newline at end of file  |