如何在 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