跳到主要內容

Use Nginx as a Reverse Proxy to serve multiple web sites



Due to save IPs, I tried to use Nginx as a reverse proxy to serve multiple web sites.
server {
    listen 80;
    server_name server1.mydomain.com;

    location / {
        proxy_pass http://10.10.10.1/; #server1 internal IP
    }
}

This will cause 403 Forbidden error. I found the answer, add three lines:

server {
    listen 80;
    server_name server1.mydomain.com;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://10.10.10.1/; #server1 internal IP
    }
}

When I restart Nginx, will cause a warning:
[emerg]: could not build the proxy_headers_hash, you should increase either proxy_headers_hash_max_size: 512 or proxy_headers_hash_bucket_size: 64

I found this solution. Finally I modified the config to this:

server {
    listen 80;
    server_name server1.mydomain.com;

    location / {
        proxy_headers_hash_max_size 51200;
        proxy_headers_hash_bucket_size 6400;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://10.10.10.1/; #server1 internal IP
    }
}

Everythins is fine!

Notice:
    if use ssl, every site sould use its own certificate, for example:

 server {
        listen       443 ssl;
        server_name  server1.mydomain.com;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_headers_hash_max_size 51200;
        proxy_headers_hash_bucket_size 6400;
        ssl_certificate      /etc/ssl/server1.mydomain.com.crt;
        ssl_certificate_key  /etc/ssl/server1.mydomain.com.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
           proxy_pass http://10.10.10.1/; #server1 internal IP
    }
}

留言

這個網誌中的熱門文章

自然人憑證讀卡機驅動程式

鳥毅用的是第一代的自然人憑證讀卡機,EZ100PU(後來有同事買EZmini可以讀SIM卡似乎更好),每年報稅時用一次。 本來只是要申請些政府業務,一時之間找不到光碟,沒想到在 驅動程式下載 居然看到Linux和Mac的驅動程式,剩下的就是政府單位的網頁和程式應該改版了吧!!!

DBeaver 介面語言

DBeaver是我個人頗常用的一套跨平台Database管理工具,最近升級後發現Windows版本居然變成簡體中文,而且無法切換為英文。

如何將較高版本SQL Server複製到低版本SQL Server (降級為舊版)並保留權限及資料庫圖表

一般若是要將SQL Server裡的Database轉往其他Server時,最簡單的方式就是備份(Backup)後再還原(Restore),或者是䣃離(detach)後附加(attach)。 但是很不幸地,若是由較低版本(e.g. 2008)到較高版本(e.g. 2012)要怎麼辦呢?