使用 nginx 當做Server的第一線

在CentOS7上安裝Nginx

寫一個nginx.repo file來讓yum能夠順利下載Nginx

sudo vi /etc/yum.repos.d/nginx.repo

在這個檔案裡貼上底下這些內容,然後:x離開。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

下載, 安裝, 啟動

sudo yum install nginx
sudo systemctl start nginx 

設定防火牆

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
sudo systemctl enable firewalld

將Nginx設定為開機時會自動啟動

sudo systemctl enable nginx

Hello Nginx

但是...這好像沒什麼用...??

###指定我們想呈現的頁面

sudo vi /etc/nginx/conf.d/default.conf 
server {
  ....省略

    location / {
      root /usr/share/nginx/html;
      index index.html index.htm;
    }

  ...省略
}

location是Nginx設定檔裡的一個指示(directive),後面的/代表root route,也就是如果網址是輸入http://您的VPS主機的IP/這樣的狀況下,會顯示什麼頁面,root指的是資料夾路徑, index設定著那個資料夾底下的哪個檔案要當作目標頁面。
Server上的/usr/share/nginx/html/index.html就是我們剛剛看到的那個Nginx預設的歡迎頁面,所以我們只要把這個地方改成我們想要放的html檔案的位置就可以呈現出我們想要呈現的頁面了。

確認我們修改的設定正不正確

如果/etc/nginx/conf.d/default.conf裡,設定有錯誤,比如說 少分號, 大括號沒有成對, 關鍵字打錯....都會讓Nginx無法重新啟動,還好Nginx有提供我們一個指令,能幫助我們檢查設定檔是否正確:

sudo nginx -t

請Nginx重新讀取設定檔

修改完設定後,要請Nginx重新讀取設定檔,新的設定才能生效。

sudo systemctl reload nginx

做完以上的事情之後,都沒做錯的話,應該就能看到我們指定的頁面了

...什麼,你說看不到?那就查查Nginx的error log吧:

下面列出幾個我有遇到過,然後在error.log裡看到的問題

more reference