AWS EC2服務器配置負載均衡器步驟:
1、普通負載均衡器
至少兩台EC2實例,這里以Centos6.7系統為例
啟動之后先安裝個apache的httpd服務器默認80端口,或者使用其他服務器和端口也行,配置負載均衡器的時候需要用到這個端口
iptables防火牆開啟80端口或者直接關閉防火牆
在/var/www/html里面新建個index.html文件,內容隨意,注冊實例到負載均衡器的時候會通過這個端口請求這個默認主頁文件,請求得到實例才能注冊成功
可以先使用
curl http://內網IP
telnet 內網IP 端口
來檢查是不是成功,ELB會通過內網和實例通信
注意,AWS安全組的策略的入站規則必須包含HTTP,80端口
安全組相當於EC2服務器的防火牆,Amazon Linux系統只通過安全組來控制,其他例如Centos系統內部仍然自帶防火牆和selinux
所以使用時需要注意安全組、系統防火牆和selinux
在EC2的控制台界面左邊導航欄上選擇負載均衡器
點擊創建

給個自定義名稱,其他可以默認

安全組根據自己需要配置

這一步是HTTPS的負載均衡器配置使用的,所以直接默認

確認Ping的端口和路徑沒錯就ok

添加實例
之后的標簽和審核看自己決定
啟動之后,點擊負載均衡器選項,在下面的描述選項卡可以看到幾個實例正在服務,繼續點擊可以查看各個實例的狀態,InService才是正常的
如果出現OutOfService狀態的話請檢查服務器內網IP、端口、防火牆、selinux、安全組策略、Apache服務器的狀態來排查問題
2、HTTPS負載均衡器
首先需要創建SSL。
創建SSL證書:
Amazon提供的文檔這部分寫的太官方了,而且含有強烈的英文翻譯成中文的那種感覺,讀起來不要不要的。雖然按着他提供的步驟是能夠正確創建的
但是還是稍微整理下把基本操作列出來,可以在看官方文檔的過程中參看下提高效率。
官網文檔地址:
Linux上(任意機器,甚至是Mac系統,只要能執行一下命令即可):
使用OpenSSL創建服務器證書(RSA加密方式):
openssl genrsa -out my-private-key.pem 2048
根據my-private-key.pem創建CSR文件,過程會輸入一些簡要的信息:
openssl req -sha256 -new -key my-private-key.pem -out csr.pem
根據csr.pem創建自簽名證書:
openssl x509 -req -days 365 -in csr.pem -signkey my-private-key.pem -out my-certificate.pem
最后生成的文件有三個,分別是
(1)私有密鑰my-private-key.pem
(2)包含簡要信息的csr.pem
(3)最后的服務器證書my-certificate.pem
之后可以根據官網的步驟使用AWS CLI進行上傳並驗證,這里演示的是在創建HTTPS負載均衡器的時候上傳服務器證書,所以創建SSL證書的部分就完成了。
創建HTTPS負載均衡器:

選擇負載均衡器,點擊創建之后不再保持默認設置
在監聽器配置一欄點擊添加,負載均衡器協議和實例協議均選擇HTTPS,端口號默認443
選中啟用高級VPC設置
在多出來的選擇子網中按照要求選擇子網,這里將兩個可以用的子網都添加進去了

選擇安全組,注意該安全組入站規則要有HTTPS的443端口

在第三部配置安全設置中,選擇上傳一個新的證書。
輸入證書名稱。
將之前生成的my-private-key.pem的內容全部復制到私有密鑰中。
將my-certificate.pem的內容全部輸入到公有密鑰證書中。
由於使用的是自簽名證書,所以不用填寫證書鏈一格。
在選擇密碼的選項中,可以選擇預定義的安全策略,也可以使用自定義。
選擇使用后端證書的話,要按之前的步驟重新創建一個SSL證書,輸入證書名和公有密鑰證書即可。
之后的步驟和配置普通的負載均衡器一致。
HTTPS負載均衡器啟動之后,如果出現實例無法注冊的話,
仍然驗證服務器內網IP、端口、防火牆、selinux、安全組策略、Apache服務器的狀態來排查問題(注意增加了HTTPS的443端口)
或者參考官方的排錯文檔。
如果在審核啟動之后出現

則是賬號沒有管理員權限,請聯系管理員獲得相應的權限。
最后使用ELB要注意預熱的問題。
更新:
默認aws上的 端口80/8080/443都是關閉的。如果網站需要公眾訪問,則需要先進行 ICP 備案。詳情請見:https://forums.aws.csdn.net/thread.jspa?threadID=111&tstart=0
AWS論壇上客服的回復(隔了一天多的時間),解決無法通過外網訪問服務器的問題,沒有備案的話三個默認端口是關閉的。