Linode VPS上讓Nginx(lnmp)支持IPv6
IPv4地址將很快用完,IPv6普及也是必然之路,現在不少VPS服務商都已經開始IPv6的過渡,像Linode、DirectSpace、BuyVM等都可以向客服發Ticket索要IPv6地址,He.net同時也提供IPv6 Tunnel間接的讓VPS支持IPv6。
預備工作:向客服索要IPv6地址,客服回復加上了就可以了,一般在他們網站后臺發ticket就可以。
一、為Nginx添加IPv6模塊
1、首先進入nginx源碼的解壓目錄,下面以lnmp為例(lnmp 0.5或更高版本不需要執行添加IPv6模塊此步,默認已經支持IPv6,在nginx 1.11.5或更高nginx版本已經移除--with-ipv6編譯參數,會自動添加ipv6支持,nginx -V上也不會顯示該參數!)比如:lnmp0.5/nginx-0.7.67/,如果忘記放在那個目錄了,可以執行:find / -name "nginx-0.7.67" ?-type d
2、找到目錄之后,執行:cd /root/lnmp0.5/nginx-0.6.67/
3、接下來給Nginx加上IPv6模塊,執行:./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module?--with-ipv6
4、如果編譯沒有錯誤,然后執行:make 但不要make install。
5、編譯完,在objs目錄下有一個nginx執行文件,先備份下原來老的nginx文件,執行:mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old ,再把新objs下的nginx cp到sbin下,執行:cp objs/nginx /usr/local/nginx/sbin/nginx
6、執行 /usr/local/nginx/sbin/nginx -t 測試下,顯示沒有問題。
7、再執行:make upgrade
8、執行:/usr/local/nginx/sbin/nginx -V 看一下,IPv6模塊已經編譯進去了。
二、Nginx啟用IPv6
Nginx添加上IPv6后,需要執行:killall nginx 再執行:/usr/local/nginx/sbin/nginx 不能用平滑重啟。
修改Nginx所有虛擬主機的配置,這個/usr/local/nginx/conf/nginx.conf 也要修改,listen 80;下面添加一行:
listen [::]:80 ipv6only=on;
其他虛擬主機將所有server {}里面的listen 80;下面添加上:
listen [::]:80;
如果要指定IP的話,所有虛擬主機的所有listen都需要添加上IP,效果如下:
server{listen ? ? ? 184.82.232.8:80;listen ? ? ? [2607:f878:3:2:0:300:2004:10]:80;listen ? ? ? [2607:f878:3:2:0:300:2004:11]:80;server_name linode.vpser.net;index index.html index.htm index.php;root ?/home/wwwroot;....省略部分配置
}
要注意IPv6地址需要用[]括起來,如果客服已經給加上IPv6地址了,而你不知道可以執行:ifconfig 命令,如下圖:
按上面要求修改好后,執行:/usr/local/nginx/sbin/nginx -t 查看是否有錯誤,沒有錯誤可以執行:killall nginx ,再執行:/usr/local/nginx/sbin/nginx 啟動即可。
打開瀏覽器輸入:http://[2607:f878:3:2:0:300:2004:10]/ 就可以訪問了。
PS:你的電腦需要已經支持IPv6,且連入IPv6,可以使用六飛、freenet6之類的現實支持IPv6。
如果在安裝過程中有問題,歡迎再本文留言或者到vps論壇相應版塊發帖。
本文原創,謝絕轉載。
>>轉載請注明出處:VPS偵探 本文鏈接地址:http://www.0794baidu.com/build/nginx-lnmp-ipv6.html












@koko, lnmp的話直接解析域名到ip,使用ipv6就在把虛擬主機配置里的;listen [::]:80;前面的#號去掉.
vps上搭建兩個站 想要達到一個站用linode自帶的ipv4 另一個用這個ipv6 這個ipv6是索要的 重啟網絡服務總是提示ipv6無效 要怎么處理呢
@花舞花落淚, apache2.0版本及以上均支持ipv6,虛擬主機里加上Listen [ipv6]:80 就行,和nginx差不多
可否告知Apache添加IPv6的方法