AWS - 使用 AWS EC2 建立一個網頁伺服器

  • 3297
  • 0

如何在 AWS 上用 EC2 建置一個網頁伺服器 (Apache / NGINX like)

並讓開發者使用 FTP 的方式上傳網頁進行更新

趁著剛剛建完先記錄一下

首先,必需要有AWS的帳號!!!

再來,登入AWS 主控台(AWS Console),照著「10分鐘教學系列-啟動Linux虛擬機器」操作

其中可能會不一樣的就是你可能必需在當下建立一個 IAM Role 給這個 EC2使用(就算這個 Role 什麼 Permissions 都沒有也是 ok 的)

如果一切順利,大概等5分鐘左右,EC2建立完成,你再照著教學操作你會停在下面這個畫面

好,接著就是要下一些指令去建立相關的服務了

這篇文章的目的是要記錄怎麼開 Web Service和 FTP Service:

Web Service 的部分

1. yum 更新。

# sudo su - 
# yum update

2. yum 安裝 httpd。

# yum install httpd -y

3. 設定開機自動執行。

# chkconfig httpd on

4. 打開 Brower 檢查或查看Local。

# curl localhost

至此,如果這台主機有開放對外的話,從外部打IP或URL應該可以看到基本的內容

而 Local webpage 的檔案會參考到

/var/www/html

FTP Service 的部分

1. yum安裝vsftp。

# sudo su - 
# yum install vsftpd 

2. 確認沒有使用的埠。

# cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000 
#32768 - 61000埠在沒有使用的狀態。

3. 修改/etc/vsftpd/vsfptd.conf文件。

區分
修改內容 解釋
修改 anonymous_enable=NO 禁止匿名FTP用戶的登錄
修改 dirmessage_enable=NO 用戶初次進入新目錄時,顯示該目錄需要注意的內容,在這裡配置為不顯示
修改 ls_recurse_enable=YES 允許用戶刪除目錄
追加 ascii_upload_enable=YES 允許以ASCII模式上傳文件
追加 ascii_download_enable=YES 允許以ASCII模式下載文件
修改 chroot_local_user=YES 把本地用戶的根目錄改為各自的FTP根目錄
修改 chroot_list_enable=YES 有效chroot_list。默認文件是chroot_list_file=/etc/vsftpd/chroot_list
修改 tcp_wrappers=NO 不使用tcp_wrappers做限制(使用AWS EC2的Security Group作限制)
修改 connect_from_port_20=NO 不使用ActiveFTP
修改 xferlog_std_format=NO 以vsftpd格式記錄到日誌文件,YES時是wu-ftpd格式
追加 pasv_enable=YES 使用PASV FTP
追加 pasv_addr_resolve=YES 在PASV模式下從主機名,獲取連接IP位址
追加 pasv_address=主機IP位址 配置EC2的Elastic IP位址
追加 pasv_min_port=60001 在PASV模式是使用的最小埠號(在手順2確認的沒有使用的埠里選擇)
追加 pasv_max_port=60100 在PASV模式是使用的最大埠號(在手順2確認的沒有使用的埠里選擇)
追加 use_localtime=YES 使用主機的時間
追加 force_dot_files=NO 隱藏.開頭的文件
追加 ser_config_dir=/etc/vsftpd/vsftpd_user_conf  必需自己新增此目錄

(耐心一個一個改)

4. 修改 /etc/vsftpd/chroot_list。

指定不變更根目錄用戶,在這裡指定的用戶會訪問根目錄,一般指定root等用戶。本文配置為空文件,不進行修改。

# vi /etc/vsftpd/chroot_list 

5. 創建FTP用戶,並設定這個帳號的密碼,我以ftp-user為我建立的例子。

# adduser ftp-user
# passwd ftp-user 

6. 設定FTP用戶可看的權限

# mkdir  /etc/vsftpd/vsftpd_user_conf
# touch ftp-user
# vim ftp-user
我希望這個帳號登入 FTP 後只看得到 (/var/www/html/) 這個目錄,所以設定內容如下:
local_root=/var/www/html/
# touch root (內容留白,有檔案即可)

7. 配置開機啟動並開啟FTP服務。

# chkconfig vsftpd on 
# chkconfig --list vsftpd 
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 
# service vsftpd start 

8. 設定目錄權限,讓使用者可以隨意的修改此目錄的內容。

# chmod 777 /var/www/html

9. 配置AWS的Security Group。

修改配置FTP服務的AWS EC2的Security Group,在Inbound追加以下內容。

Type Protocol Port Range Source
Custome TCP Rule TCP 21 0.0.0.0/0
Custome TCP Rule TCP 60001 - 60100 0.0.0.0/0

改完之後會像這樣

完成。

這樣就可以順利連上囉!!!

 

參考文章:

http://akuma1.pixnet.net/blog/post/291725322-%EF%BC%88%E4%BA%8C%EF%BC%89ec2%EF%BC%88elastic-compute-cloud%EF%BC%89%EF%BC%8D%EF%BC%8Daws%E7%B6%93%E9%A9%97%E6%95%99%E5%AD%B8

https://kknews.cc/zh-tw/other/2vl9v9.html

https://www.quora.com/How-do-I-host-a-website-on-an-Amazon-EC2-instance-running-Linux-with-Apache-given-that-I-already-have-a-registered-GoDaddy-domain-step-by-step