/etc/services
: 可以查詢 port 主要是什麼服務
port 通訊埠 : 一個主機在選擇要接哪個服務的時候,是透過 port 來連接,要資源
web server
Nginx | Lighttpd | Apache2 |
---|---|---|
適合做 Reverse proxy 可以同時承受很大的流量(Concurrent connection) 也可以做轉發 |
適合檔案傳輸 支援 cgi, fastcgi |
歷史悠久 市占率最高 模組支援完整 軟體肥大占用硬體資源多 設定複雜 |
指在同一機器上運行多個網站
在同一機器、IP 位址,架設多個網域名稱的網站
在同一機器、不同的IP位址,架設多個網站
port不同 ex:127.0.0.1:8080、127.0.0.1:8081
sudo apt install nginx
sudo service nginx status
sudo service [服務名稱] [動作]
:
sudo service nginx stop
start
開啟服務stop
: 關閉服務reload
: 不停止服務,重載設定檔restart
: 停止服務重新開啟status
: 查看服務狀態sudo systemctl [動作] [服務名稱]
sudo systemctl status nginx.service
跟sudo service nginx status
結果一樣為什麼這兩個結果會是一致的,有沒有什麼辦法可以驗證? Jerry Wang
sudo /etc/init.d/nginx status
ls -l /etc/init.d/{script_name}
(操作)
sudo systemctl {操作} {unit_name}
/lib/systemd/system
:w !sudo tee %
: 更改伺服器讀取的index順序(錯ㄌ)
:w !
: 執行外部命令sudo tee
: 提昇tee的權限並且運用tee的功能,也就是把後面的引數印出來或存某個檔案內%
: 是vim的暫存檔,存檔案路徑於網址輸入127.0.0.1
: 連上Nginx服務
vim /etc/hosts
: 記錄這台機器上 host 對應domain name,host name 的相關資訊
http:// {hostname}
or {hostname}
/etc/hosts
127.0.0.1 localhost
127.0.1.1 <電腦名稱>
http://localhost
和 http://<電腦名稱>
會自動跳轉localhost
也可以出現一樣的頁面{hostname}
進去,要在sudo vim /etc/hosts
新增127.0.0.1 {hostname}
才可使用127.0.0.1 netmask 255.0.0.0
: 127 之下的都是自己的
nginx 設定檔主要會放在 3 個地方
vim /etc/nginx/nginx.conf
: 主設定檔
etc
: Nginx(要載入的其他)設定檔
sudo
username@hostname:/etc/nginx$
+cat nginx.conf
available
& enabled
區隔開來以免在系統設定時互相影響
sites-available
:設定檔的存放庫,設定檔都先放這,要運行時直接softlink到sites-enabled
sites-enabled
: 實際讓服務運作的設定檔
sudo netstat -ntupl
: 查看服務跑在哪個port上面(目前的網路狀況)
netstat -ntul
: 不會顯示特定服務被哪個port listenls -l /etc/nginx/sites-available
:查看sites-available
檔案vim /etc/nginx/sites-available/default
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup
: 先複製一份,避免被改壞了,還可以復原要在 etc
下操作,都要 sudo
好像在 / (根目錄) 底下做操作都要
sudo
陳柏瑋
在etc下的檔案權限幾乎都是root,所以建議都用sudo執行 呂心慈
sudo nginx -t
: 在enable
的設定檔可知道有無問題
練習:
sudo vim /etc/nginx/sites-available/default
sudo service nginx restart
: 將更改過的設定更新至server
當對服務的port做更改時,建議先停止server sudo service nginx stop
,再開始 sudo service nginx start
try_files
:
root
目錄下是否有相應的檔案名稱可提供給使用者root
中沒有的話,則去index
中查看root
& index
皆沒有找到相應的檔案名稱,會回傳404連結到 http://nginx1.com:8080 的流量會被導向 網站根目錄在 /var/www/vhost/nginx1/ 的 virtual host
sudo vim /etc/hosts
: 更改host的紀錄
127.0.0.1 nginx1.com
sudo mkdir /var/www/vhost
: 於 /var/www
下,建立vhost資料夾
sudo mkdir /var/www/vhost/nginx1
: 在 vhost 下,再建立一個 nginx1 資料夾,用來存放nginx1
的所有資源ls -l /var/www/vhost/
: check 一下回到根目錄
sudo vim /etc/nginx/sites-available/nginx1
以上完成還沒被啟用
sudo ln -s /etc/nginx/sites-available/nginx1 /etc/nginx/sites-enabled/
: 把nginx1連結(soft link)到enabled,讓enabled啟用nginx1
ls -l /etc/nginx/sites-enabled/
: check 一下
sudo service nginx reload
:麻煩 nginx 在 enable 把裡面的設定檔去吃進來
sudo vim test.html
: 寫一個HTML檔進行測試(寫在/var/www/vhost/nginx1/裡面)
在網址列輸入 http://nginx1.com:8080
sudo vim /etc/hosts
127.0.0.1 nginx2.proxy.com
sudo vim /etc/nginx/sites-available/nginx2
如果是nginx要proxy到lsa.bluet.org結果出現502 bad gateway的error訊息的話可以給它指定外面的DNS server喔
apache proxy conf:
記得把proxy module打開
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo ln -s /etc/nginx/sites-available/nginx2 /etc/nginx/sites-enabled
: softlink 到 sites-enabled
sudo nginx -t
: 檢查有沒有錯sudo service nginx reload
: 把裡面的設定檔去吃進來http://nginx2.proxy.com:8080
ps | tee lala
: 把 ps 這個指令的輸出存到 lala 裡並顯示出來
tee
: 將結果同時輸出到螢幕和檔案ps | sudo tee /etc/lala
sudo rm /etc/lala
: 記得刪掉喔,避免以後出錯sudo apt install lighttpd
: 先安裝 lighttpd
sudo vim /etc/lighttpd/lighttpd.conf
: 查看 lighttpd.conf
這個設定檔
modules
: 模組
lighttpd
: 查看現在有哪些module可以用force-reload
: 使用這個指令,讀入改變的設定lighttpd-enable-mod
: 查看現在有哪些module可以用
sudo lighttpd-disable-mod
就 disable
cat /etc/passwd | grep www-data
: 在 /etc/passwd 裡面找 www-data
這個關鍵字在哪裡
url.access-deny
不能被訪問static-file.exclude-extensions
不能被下載