我的vps(Ubuntu+Nginx+Mariadb+Wordpress)之前支持兩個站點(diǎn),現(xiàn)在想再增加一個站點(diǎn)支持,可是已經(jīng)忘記了之前是如何配置的。
必應(yīng)了一下(現(xiàn)在很少百度了,本想谷歌又用不了,哎...why?) 得到的答案是需要操作如下兩個目錄:
/etc/nginx/sites-available/
/etc/nginx/sites-enabled/
一個是有效的網(wǎng)站配置文件目錄,一個是啟用。
首先在/etc/nginx/sites-available/創(chuàng)建該站點(diǎn)的配置文件:
server {
? ? listen 80;
? ? server_name example.com www.example.com;
? ? root /var/www/example.com/public_html;
? ? index index.html;
? ? access_log /var/log/nginx/example.com.access.log;
? ? error_log /var/log/nginx/example.com.error.log;
}
server_name:應(yīng)與此服務(wù)器塊配置匹配的域。
root:Nginx將在其中提供域文件的目錄。
access_log,error_log:指定日志文件的位置。
可以將配置文件命名為任意名稱,但是通常最好使用域名。
然后,要啟用新的服務(wù)器配置文件,需要創(chuàng)建一個從文件到sites-enabled目錄的符號鏈接,Nginx在啟動過程中會讀取該鏈接,命令如下:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
測試Nginx配置的語法是否正確:
sudo nginx -t
如果沒有錯誤,輸出將如下所示:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新啟動Nginx服務(wù),以使更改生效:
sudo systemctl restart nginx
這個時候,將測試用的index.html放到新增站點(diǎn)的根目錄下面,在新增域名的dns中錄入vps的IP地址,使新增的域名能夠解析到這個vps的公網(wǎng)ip上。最后,在瀏覽器上輸入新增的域名,如果出現(xiàn)了測試index.html內(nèi)容說明成功了。
可是問題來了,輸入新增的域名后,出來的網(wǎng)頁竟然是之前的站點(diǎn)內(nèi)容,為什么呢?哪里出錯了?
這時候,我想起在執(zhí)行nginx -t命令測試配置語法是否正確時,輸出信息有這樣一行:
nginx: configuration file /etc/nginx/nginx.conf test is successful
里面提到配置文件:/etc/nginx/nginx.conf ,那么就看一下這個文件吧,文件內(nèi)有這樣幾行:
?
# Virtual Host Configs
? ? ? ? ##
? ? ? ? include /etc/nginx/conf.d/*.conf;
? ? ? ? #include /etc/nginx/sites-enabled/*;
注意#include /etc/nginx/sites-enabled/*; sites-enabled被屏蔽了,這是是否是sites-enabled中的設(shè)置就不起作用了呢?起作用的是“include /etc/nginx/conf.d/*.conf”?
于是
# cd /etc/nginx/conf.d
#ll
看到了之前以站點(diǎn)命名的兩個conf配置文件,復(fù)制其中一個改名為新增域名后,用vi修改成這樣:
server {
listen 80;
server_name example.com;
root /var/www/example.com/public_html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args ;
}
location ~ /favicon.ico {
access_log off;
log_not_found off;
}
location ~ \.php$ {
try_files $uri /index.php;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
access_log /var/log/nginx/$host-access.log;
error_log /var/log/nginx/wpms-error.log;
}
然后,重新啟動nginx
sudo systemctl restart nginx
再次在瀏覽器輸入新增域名,發(fā)現(xiàn)ok了。
看來存在兩套機(jī)制支持多站點(diǎn),一個是/etc/nginx/sites-available/和/etc/nginx/sites-enabled/;另一個是在/etc/nginx/conf.d下寫各自站點(diǎn)的配置文件。使用哪一個機(jī)制由
/etc/nginx/nginx.conf 中的下面幾條語句確定:
?
# Virtual Host Configs
? ? ? ? ##
? ? ? ? include /etc/nginx/conf.d/*.conf;
? ? ? ? #include /etc/nginx/sites-enabled/*;
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧