更新一下安裝包
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
安裝nginx
sudo apt-get install nginx -y
調(diào)整防火墻
sudo ufw app list # 獲得應(yīng)用程序配置文件的列表
可用應(yīng)用程序:
Nginx Full 此配置文件打開端口80(正常,未加密的網(wǎng)絡(luò)流量)和端口443(TLS / SSL加密流量)
Nginx HTTP 此配置文件僅打開端口80(正常,未加密的網(wǎng)絡(luò)流量)
Nginx HTTPS 此配置文件僅打開端口443(TLS / SSL加密流量)
OpenSSH
啟動(dòng)防火墻
sudo ufw enable
啟動(dòng)后可輸入下方命令查看防火墻可通過服務(wù)情況
sudo ufw status
添加可通過服務(wù)
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
sudo ufw allow 'Nginx Full'
檢查nginx是否運(yùn)行
sudo systemctl status nginx
q退出查看狀態(tài)

管理nginx進(jìn)程
sudo systemctl stop nginx 停止Web服務(wù)器
sudo systemctl start nginx 啟動(dòng)Web服務(wù)器
sudo systemctl restart nginx 重啟Web服務(wù)器
sudo systemctl reload nginx 重新加載配置文件
sudo systemctl disable nginx 禁止開機(jī)啟動(dòng)
sudo systemctl enable nginx 設(shè)置開機(jī)啟動(dòng)
設(shè)置服務(wù)器塊
Ubuntu 18.04上的Nginx默認(rèn)啟用了一個(gè)服務(wù)器模塊,該模塊被配置為在/var/www/html目錄下提供文檔。 雖然這適用于單個(gè)站點(diǎn),但如果您托管多個(gè)站點(diǎn),它可能會(huì)變得很笨重。 我們不必修改/var/www/html ,而是在/var/www為我們的example.com網(wǎng)站創(chuàng)建一個(gè)目錄結(jié)構(gòu),并將/var/www/html保留為默認(rèn)目錄,如果客戶端請求沒有匹配任何其他網(wǎng)站。
按如下所示為example.com創(chuàng)建目錄,使用-p標(biāo)志創(chuàng)建任何必需的父目錄:
$ sudo mkdir -p /var/www/example.com/html
接下來,使用$USER環(huán)境變量分配目錄的所有權(quán):
USER:$USER /var/www/example.com/html/
如果你沒有修改你的umask值,你的web根目錄的權(quán)限應(yīng)該是正確的,但是你可以通過輸入:
$ sudo chmod -R 755 /var/www/example.com/
接下來,使用gedit或您最喜歡的編輯器創(chuàng)建一個(gè)index.html頁面示例:
$ gedit /var/www/example.com/html/index.html
在里面,添加下面的示例HTML:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com server block is working!</h1>
</body>
</html>
為了讓Nginx提供這些內(nèi)容,有必要?jiǎng)?chuàng)建一個(gè)具有正確指令的服務(wù)器塊。 我們不要直接修改默認(rèn)配置文件,而是在/etc/nginx/sites-available/ example.com上創(chuàng)建一個(gè)新文件:
$ sudo gedit /etc/nginx/sites-available/example.com
粘貼到以下配置塊中,該塊類似于默認(rèn)值,但已更新為我們的新目錄和域名:
server {
listen 80;
listen [::]:80;
root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
請注意,我們已將root配置更新到我們的新目錄,并將server_name為我們的域名。
接下來,讓我們通過創(chuàng)建一個(gè)鏈接到啟動(dòng)sites-enabled目錄來啟用該文件,該目錄是Nginx在啟動(dòng)過程中讀取的:
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
現(xiàn)在啟用兩個(gè)服務(wù)器模塊并將其配置為基于listen和server_name指令響應(yīng)請求(您可以閱讀關(guān)于Nginx如何處理這些指令的更多信息):
example.com :將響應(yīng)example.com和www.example.com請求。
default :將響應(yīng)端口80上與其他兩個(gè)塊不匹配的任何請求。
為了避免添加額外的服務(wù)器名稱可能導(dǎo)致的哈希桶內(nèi)存問題,有必要調(diào)整/etc/nginx/nginx.conf文件中的單個(gè)值。
打開文件:sudo gedit /etc/nginx/nginx.conf
找到server_names_hash_bucket_size指令并刪除#符號(hào)以取消注釋該行:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
接下來,測試以確保您的Nginx文件中沒有語法錯(cuò)誤:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果沒有任何問題,請重新啟動(dòng)Nginx以啟用您的更改:
$ sudo systemctl restart nginx
熟悉重要的Nginx文件和目錄
nginx服務(wù)器配置文件:
/etc/nginx :Nginx配置目錄。 所有的Nginx配置文件都駐留在這里。
/etc/nginx/nginx.conf :主要的Nginx配置文件。 這可以修改,以更改Nginx全局配置。
/etc/nginx/sites-available/ :可存儲(chǔ)每個(gè)站點(diǎn)服務(wù)器塊的目錄。 除非將Nginx鏈接到sites-enabled了sites-enabled目錄,否則Nginx不會(huì)使用此目錄中的配置文件。 通常,所有服務(wù)器塊配置都在此目錄中完成,然后通過鏈接到其他目錄啟用。
/etc/nginx/sites-enabled/ :存儲(chǔ)啟用的每個(gè)站點(diǎn)服務(wù)器塊的目錄。 通常,這些是通過鏈接到sites-available目錄中的配置文件創(chuàng)建的。
/etc/nginx/snippets :這個(gè)目錄包含可以包含在Nginx配置其他地方的配置片段。 可重復(fù)配置的片段可以重構(gòu)為片段。
nginx服務(wù)器日志文件:
/var/log/nginx/access.log :除非Nginx配置為其他方式,否則每個(gè)對(duì)您的Web服務(wù)器的請求都會(huì)記錄在此日志文件中。
/var/log/nginx/error.log :任何Nginx錯(cuò)誤都會(huì)記錄在這個(gè)日志中。