Nginx的安裝配置使用
安裝
Nginx 在預設的 Ubuntu 源倉庫中可用。想要安裝它,執行下面的命令
sudo apt update
sudo apt install nginx
一旦安裝完成,Nginx 將會自動被啟動。你可以執行下面的命令來驗證它:
sudo systemctl status nginx.service
想要測試你的新 Nginx 安裝,在你的瀏覽器中開啟http://YOUR_IP,你應該可以看到預設的 Nginx 載入頁面
Nginx 配置檔案結構以及最佳實踐
- 所有的 Nginx 配置檔案都在/etc/nginx/目錄下。
- 主要的 Nginx 配置檔案是/etc/nginx/nginx.conf。
- 為每個域名建立一個獨立的配置檔案,便於維護伺服器。你可以按照需要定義任意多的 block 檔案。
- Nginx 伺服器配置檔案被儲存在/etc/nginx/sites-available目錄下。在/etc/nginx/sites-enabled目錄下的配置檔案都將被 Nginx 使用。
- 最佳推薦是使用標準的命名方式。例如,如果你的域名是mydomain.com,那麼配置檔案應該被命名為/etc/nginx/sites-available/mydomain.com.conf,
然後再/etc/nginx/sites-enabled下建立軟連結 ln -s /etc/nginx/sites-available/mydomain.com.conf 以便被 Nginx 使用
操作配置檔案
- /etc/nginx/sites-available/default是虛擬站點的配置模板,在/etc/nginx/sites-available目錄下存放站點配置檔案。
- 必須先在/etc/nginx/sites-available目錄下生成站點配置檔案,然後在/etc/nginx/sites-enabled目錄下建立軟連線
cd /etc/nginx/sites-available
sudo cp /etc/nginx/sites-available/default mydomain.com.conf
vim mydomain.com.conf # 參考Nginx檔案如何配置
cd /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/mydomain.com.conf
nginx -t -c /etc/nginx/sites-available/mydomain.com.conf # nginx 檢查配置檔案語法錯誤
nginx -s reload # nginx 重新載入配置檔案
sudo systemctl status nginx.service # 檢視 nginx 狀態 | 使用 sudo systemctl start nginx 啟動 nginx 服務
Nginx 埠轉發
將域名轉發到本地埠
首先介紹最常用的,將域名轉發到本地另一個埠上
server{
listen 80;
server_name mydomain.com;
index index.php index.html index.htm;
location / {
proxy_pass http://127.0.0.1:8080; # 轉發規則
proxy_set_header Host $proxy_host; # 修改轉發請求頭,讓8080埠的應用可以收到真實的請求
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
這樣訪問 mydomain.com 時就會轉發到本地的 8080 埠
將域名轉發到另一個域名
server{
listen 80;
server_name mydomain.com;
index index.php index.html index.htm;
location / {
proxy_pass http://www.baidu.com;
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
這樣訪問 mydomain.com 時就會轉發到 www.baidu.com
本地一個埠轉發到另一個埠或另一個域名
server{
listen 80;
server_name 127.0.0.1; # 公網ip
index index.php index.html index.htm;
location / {
proxy_pass http://127.0.0.1:8080; # 或 http://www.baidu.com
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
這樣訪問 127.0.0.1 時就會轉發到本地的 8080 埠或 http://www.baidu.com