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 錯誤都記錄在此日誌中。





閱讀量




聯絡與合作


訂閱電子報,領「我當前 10+ 以上收入源有哪些」一文。

有文字採訪、網站開發,或是諮詢需求,皆可至個人網站參考作品,並聯繫 IG

或是想分享心情、聊聊天、交朋友,可以來秘密通道找我唷。

Email: frank@siddharam.com