July 29, 2019

nginx 伺服器安裝教學

如何架設網站


文 / Siddharam 西打藍

前言


在開始前,你可能需要先熟悉 linux 指令,接著我們就來安裝 nginx,並嘗試把靜態資源上去。最後,我們會簡介服務器的目錄配置。

安裝 nginx



# 檢查有無可用的更新
sudo apt update  

# 安裝 nginx
sudo apt install nginx


接著需要調整防火牆,打開 80 port。


# 打開 HTTP 80 port
sudo ufw allow 'Nginx HTTP'

# 檢視更改狀態
sudo ufw status


再來就能嘗試開啟 nginx 了。


# 啟動 nginx 服務器
sudo systemctl start nginx

# 關閉
sudo systemctl stop nginx

# 重新啟動
sudo systemctl restart nginx

# 如果只是更改配置,可以重新加載
sudo systemctl reload nginx


這時輸入你的 IP 就能看到畫面了。

佈署靜態資源


我們可以在 /var/www 目錄下,放置你的靜態資源,例如我們在底下新增 test 資料夾,並放上 html 檔案:


# 建立資料夾
sudo mkdir -p /var/www/test

# 修改裡頭的 html 檔案
sudo nano /var/www/test/index.html

<html>
    <head>
        <title>Welcome to Siddharam</title>
    </head>
    <body>
        <h1>歡迎來到西打藍的教學</h1>
    </body>
</html>



接著,我們要在 /etc/nginx/sites-available/default 修改配置文件:


sudo nano /etc/nginx/sites-available/default

server {
        listen 80;
        listen [::]:80;

        root /var/www/test;
        index index.html index.htm index.nginx-debian.html;

        server_name test;

        location / {
                try_files $uri $uri/ =404;
        }
}


如果你有 css / js / img 等靜態資源的話,還必須加上下列這段才能讀取的到:


location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #设定访问静态文件直接读取不经过tomcat
        {
          expires      30d;
          root /var/www/analyze-robot/test;
        }

location ~ .*\.(js|css)?$
        {
          expires      1h;
          root /var/www/analyze-robot/test;
        }


最後,我們要啟用 sites-enabled 的鏈接:


sudo ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/


重啟服務就能看到新的畫面囉:


sudo systemctl restart nginx


nginx 目錄解說


最後我們來列舉重要的目錄:


/var/www/html:實際的 Web 內容(默認情況下僅包含您之前看到的默認 Nginx 頁面)
是從/var/www/html目錄中提供的。這可以通過更改Nginx配置文件來更改。

/etc/nginx:Nginx 配置目錄。所有 Nginx 配置文件都放在這底下。

/etc/nginx/nginx.conf:主要的 Nginx 配置文件。可以對此修改 Nginx 全局配置。

/etc/nginx/sites-available/:可以存儲每站點服務器塊的目錄。
除非鏈接到此目錄,否則 Nginx 不會使用此目錄中的配置文件 sites-enabled。
通常,所有服務器塊配置都在此目錄中完成,然後通過鏈接到其他目錄來啟用。

/etc/nginx/sites-enabled/:存儲已啟用的每站點服務器塊的目錄。
是通過鏈接到 sites-available 目錄的配置文件來創建的。

/var/log/nginx/access.log:Web 服務器的日誌文件。

/var/log/nginx/error.log:任何 Nginx 錯誤都記錄在此日誌中。






技術文章與合作


有網站設計(UI/UX)、平面設計、網站工程外包需求,皆可以來信詢問,在 關於下方 有參考作品。

想定期收到技術文章,或想一起探討前後端程式的朋友,建議加入 line 群組,或是官方帳號,大家可以互相交流,一起學程式,歡迎加入:

Email: aaa24295234@gmail.com

Line 群組:群組

Line 群組 QR Code:

Line 官方帳號:@184railx

Line 官方帳號 QR Code:



閱讀量