在AWS上建立多個(gè)web站點(diǎn)的Step by Step指南
時(shí)間:2023-07-16 00:06:02 | 來源:網(wǎng)站運(yùn)營
時(shí)間:2023-07-16 00:06:02 來源:網(wǎng)站運(yùn)營
在AWS上建立多個(gè)web站點(diǎn)的Step by Step指南:申請出國留學(xué)時(shí)制作的個(gè)人作品集,都需要搞一個(gè)網(wǎng)站向申請學(xué)校進(jìn)行展示, 如果申請的是美國的學(xué)校,建議把站點(diǎn)還是放到美國本地以保證本地訪問速度和良好的體驗(yàn)。
Amazon的云服務(wù)給我們提供了非常棒的服務(wù),讓我們可以把自己的網(wǎng)站免費(fèi)的架設(shè)在全球自己想放置的地方,大概有20G的空間,也不用考慮流量問題,不要去做各種搞不清楚的備案,作為留學(xué)狗真是極大的福利
這篇文檔就是面向申請了AWS上的一個(gè)EC2主機(jī)實(shí)例后,幾個(gè)同學(xué)各自制作了作品集PS網(wǎng)站,各自申請了域名,然后域名都指向這臺EC2主機(jī)搭建web公用狗窩的step by step指南...
1. 申請AWS上的主機(jī)
去
http://aws.amazon.com 上注冊一個(gè)賬號,然后按照AWS上給出的說明,啟用長達(dá)1年免費(fèi)的EC2主機(jī)實(shí)例,按照AWS給出的規(guī)則, AWS免費(fèi)套餐包括為期一年、每月 750 小時(shí) Linux 和 Windows t2.micro 實(shí)例的使用時(shí)間。意味著這臺主機(jī)可以24小時(shí)開機(jī)在線。這個(gè)在網(wǎng)上有過程說明吧?我這里啟動的是Linux實(shí)例。
AWS上申請EC2主機(jī),按照自己的需求可以選擇全球不同的區(qū)域,比如美國東部(俄亥俄)。如果選擇了浙江的數(shù)據(jù)中心,是不是就要網(wǎng)站備案了,咱也不知道...
啟動了EC2主機(jī)后,在AWS控制臺,可以看到現(xiàn)在這個(gè)云主機(jī)實(shí)例的狀態(tài),并進(jìn)行啟動、重啟、停止、休眠和終止等操作。 啟動、重啟、停止都不會把主機(jī)上的內(nèi)容清除,但終止實(shí)例后,AWS會把主機(jī)徹底刪除,內(nèi)容都抹去,上面的內(nèi)容就找不回來了
2. 關(guān)于訪問主機(jī)的關(guān)鍵信息:IP地址、用戶名、密鑰
特別注意:在初始啟動EC2實(shí)例過程中,可以下載EC2主機(jī)的私鑰文件,一定要保存好這個(gè)私鑰文件,這里我們簡單存為mykey.pem,在使用SSH客戶端訪問EC2主機(jī)的時(shí)候需要這個(gè)文件,EC2主機(jī)是不使用賬戶密碼方式訪問的,而是更安全的用戶名加密鑰文件方式。詳見我丟失在風(fēng)中的文檔《使用SSH訪問Linux主機(jī)的各種姿勢》
當(dāng)你的AWS EC2已經(jīng)啟動后,意味著你在云端已經(jīng)有了一臺Linux服務(wù)器,關(guān)鍵信息應(yīng)該有:
IPv4 公有IP : ____________
主機(jī)用戶名 : ec2-user
主機(jī)密鑰文件: mykey.pem
- 如果這個(gè)文件丟失,你可以從控制臺重新生成新的密鑰對,然后就是比較麻煩的過程,最后還是保留好。但如果你的EC2是團(tuán)隊(duì)共享使用的,同時(shí)又小伙伴離職時(shí),這時(shí)候又必要注銷或者更換一個(gè)新的密鑰。這些內(nèi)容詳見我不知道放哪里去的《Linux Root 最佳實(shí)踐》
密鑰文件一般都是這樣的內(nèi)容...
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCA..................一大堆字符
.... ...... .. . . ... . ... . .. . . .. . . .. . ...
................... .......... ......... . ...... ...
-----END RSA PRIVATE KEY-----
3. 用SSH工具訪問你的AWS主機(jī)
我們可以用putty工具,或者用更功能強(qiáng)大的MobaXterm來訪問管理EC2主機(jī)。
使用MobaXterm的方法:
1)啟動xterm后,增加一個(gè)新的連接(New session)
2) 設(shè)置相關(guān)的信息
在SSH選項(xiàng)中,Remote host 填寫IP地址,具體的IP信息可以從AWS的控制臺查看EC2實(shí)例
用戶名: ec2-user
端口: 22
Use private key : 選擇你下載的AWS密鑰文件 mykey.pem
完成后,可以雙擊你剛剛建立的session,連接EC2主機(jī),連接主機(jī)后, 運(yùn)行 sudo su - 命令,從ec2-user身份升級為root身份
用sudo命令提升為root最高權(quán)限有了root權(quán)限后,可以安裝應(yīng)用軟件和配置各種服務(wù)啦。
4. 在EC2主機(jī)上安裝網(wǎng)站服務(wù)(apache http服務(wù))
網(wǎng)站服務(wù)在默認(rèn)的EC2實(shí)例中是沒有安裝的,要查看當(dāng)前的服務(wù)器是否啟動了web服務(wù),可以用netstat 命令檢查是否有80端口對外開放。
4.1 安裝http服務(wù)用如下命令#yum install httpd
httpd 服務(wù)就安裝好啦。現(xiàn)在就啟動試試吧~
4.2 httpd的基礎(chǔ)管理命令- 啟動httpd服務(wù),使用命令
#systemctl start httpd
- 停止httpd服務(wù),使用命令
#systemctl stop httpd
- 重啟httpd服務(wù),使用命令
#systemctl restart httpd
- 查看httpd服務(wù)的狀態(tài),使用
#systemctl status httpd
- 查看ec2主機(jī)正在運(yùn)行了哪些服務(wù),監(jiān)聽外部的那些端口,使用
#netstat -anp|more
查看httpd狀態(tài),查看主機(jī)監(jiān)聽的所有端口和現(xiàn)有的連接4.3 httpd服務(wù)的核心文件在/etc/httpd/conf目錄中,有http服務(wù)的配置文件: httpd.conf 這個(gè)文件控制著httpd服務(wù)的各種方方面面的功能,例如:監(jiān)聽的ip和端口,網(wǎng)站目錄,默認(rèn)首頁文件,多個(gè)網(wǎng)站的分流判斷方法,是基于域名的,還是基于端口的等等。
默認(rèn)的配置會把網(wǎng)站目錄指向/var/www/html 目錄。
5. 打開EC2的防火墻,讓外部可以訪問你的web
web服務(wù)默認(rèn)對外的端口是80,就像ssh服務(wù)監(jiān)聽22一樣,而https協(xié)議默認(rèn)的監(jiān)聽端口是443 , 所以我們需要配置EC2的安全組,在安全策略中增加允許外部訪問80端口,當(dāng)然,為了方便可以一并將443也打開。
為AWS EC2配置安全策略,對所有IP源,開放80端口這時(shí),你用瀏覽器可以從任何地方訪問你的IP,應(yīng)該能看見某個(gè)頁面啦,
6. 配置httpd虛擬主機(jī),讓一臺EC2向外提供多個(gè)網(wǎng)站服務(wù)
Apache httpd服務(wù)可以用一個(gè)linux服務(wù)器向外提供多個(gè)網(wǎng)站(提供多個(gè)virtual host ),這里的httpd虛擬主機(jī)是指的應(yīng)用層的,和vpc,vm不是一個(gè)概念,這里不說了吧,再解釋就讓人懷疑你申請了美國克萊登大學(xué)...
現(xiàn)在EC2主機(jī)上將要架設(shè)tom和jerry兩位同學(xué)的web站點(diǎn),我們的規(guī)劃如下圖:
在單臺EC2主機(jī)上,架設(shè)多個(gè)web站點(diǎn)6.1 在EC2主機(jī)的目錄中放置多個(gè)網(wǎng)站目錄和文件推薦在/data目錄中,我們建立兩個(gè)目錄
/data/web_www.tom.xyz 和 /data/
http://web_www.jerry.com ,分別copy好各自的文件,
這些文件可以用winscp直接從本地電腦copy到遠(yuǎn)端的EC2主機(jī)中,也可以在EC2主機(jī)中,用svn update拉取svn服務(wù)器上的代碼,... 詳見我的不知道講了多少遍不知道放在哪里的《碼農(nóng)小伙伴的文檔管理最佳實(shí)踐》
6.2 配置http,啟用基于域名的多個(gè)站點(diǎn)使用vi,打開文件/etc/httpd/conf/httpd.conf
如果,我是說如果你的鍵盤不能很好地配合你使用vi進(jìn)行編輯,你可以安裝一個(gè)非常友好的mc軟件來愉快地編輯文本文件,安裝mc的命令是
#yum install mc , 安裝完成后輸入
mc進(jìn)入,F(xiàn)4是編輯文件,mc軟件支持鼠標(biāo)操作,但我們還是用vi直接說吧~
在/etc/httpd/conf.d 目錄中,增加一個(gè)vhost.conf文件,這個(gè)目錄中的*.conf文件都會作為httpd的配置文件,被/etc/httpd/conf/httpd.conf主配置文件引用,vhost.conf文件內(nèi)容就是定義多個(gè)網(wǎng)站的目錄和域名訪問規(guī)則,其內(nèi)容是:
<VirtualHost *:80>
ServerAdmin admin@tom.xyz
DocumentRoot /data/web_www.tom.xyz
ServerName www.tom.xyz
<Directory /data/web_www.tom.xyz>
Options -Indexes +FollowSymLinks
AllowOverride All
Allow from all
Require all granted
</Directory>
ErrorLog /var/log/httpd/tom-error.log
CustomLog /var/log/httpd/tom-access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@jerry.com
DocumentRoot /data/
http://web_www.jerry.com ServerName www.jerry.com
<Directory /data/web_web_www.jerry.com>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/jerry-error.log
CustomLog /var/log/httpd/jerry-access.log combined
</VirtualHost>
當(dāng)然,這個(gè)文件還可以增加許多站點(diǎn)... 寫好這個(gè)文件后,重啟一下httpd服務(wù),這樣你就可以用瀏覽器訪問不同的域名,看看是否進(jìn)入了不同的網(wǎng)站。
web服務(wù)更多的內(nèi)容,比如高可用性及水平擴(kuò)展,負(fù)載均衡,性能及壓力測試,SSL證書與CA建設(shè),應(yīng)用服務(wù)器等等,詳見我的散落在互聯(lián)網(wǎng)海洋中的《企業(yè)應(yīng)用之基礎(chǔ)構(gòu)架的各種折騰》。
7. 其他的一些細(xì)節(jié)
有一些內(nèi)容還是可以讓你的這個(gè)web狗窩更加完備, 當(dāng)EC2服務(wù)器重啟后,httpd服務(wù)應(yīng)當(dāng)自動啟動。
你的web站點(diǎn)應(yīng)該加入用戶訪問探針,哪個(gè)學(xué)校訪問了你的網(wǎng)站,瀏覽了多長時(shí)間,第幾次訪問,這都可以詳見google,zhihu...
還有一個(gè)比較基礎(chǔ)的問題,當(dāng)EC2服務(wù)器停止,再次啟動后,公網(wǎng)IP地址會變的,這樣域名服務(wù)器的配置就失效了,別人就訪問不到站點(diǎn)了,為了保障有相對永久的公網(wǎng)IP,你應(yīng)該啟用AWS EC2的彈性IP,這個(gè)詳見... AWS 非常詳細(xì)的視頻教學(xué)和文檔,所有的系統(tǒng)最好的方法都是讀他們的文檔...
-end-