要在NGINX中創建用於託管多個網站的虛擬主機,您需要設置服務器塊。服務器塊是NGINX等於Apache的虛擬主機,它允許您在單個服務器上託管多個網站。這是這樣做的方法:
創建服務器塊文件:對於要託管的每個網站,通常您會在/etc/nginx/sites-available/
中創建一個新的服務器塊文件。例如,如果您想託管example.com
,則可以創建一個名為example.com.conf
的文件。
<code class="nginx">server { listen 80; listen [::]:80; server_name example.com www.example.com; root /var/www/example.com; index index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ =404; } }</code>
啟用服務器塊:要啟用新的服務器塊,請從/etc/nginx/sites-available/example.com.conf
創建一個符號鏈接到/etc/nginx/sites-enabled/
。
<code class="bash">sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/</code>
測試和重新加載nginx :在應用更改之前,請測試您的配置,以確保沒有語法錯誤。
<code class="bash">sudo nginx -t</code>
如果測試通過,請重新加載nginx應用新配置。
<code class="bash">sudo systemctl reload nginx</code>
配置NGINX在單個服務器上託管多個網站的過程涉及為每個網站創建服務器塊並有效地管理它們。這是一個詳細的逐步過程:
安裝nginx :確保在服務器上安裝了nginx。在Ubuntu上,您可以使用:
<code class="bash">sudo apt-get update sudo apt-get install nginx</code>
/etc/nginx/sites-available/
中創建一個配置文件。使用上一個答案中提供的模板,並根據每個網站的需要對其進行自定義。/var/www/example.com
example.com),並確保將文件放置在這些目錄中。sites-available
目錄到每個服務器塊的sites-enabled
目錄的符號鏈接,如上一個答案中所述。設置SSL證書(可選) :對於HTTPS,設置SSL證書並更新服務器塊以包括SSL配置。
<code class="nginx">listen 443 ssl; ssl_certificate /etc/ssl/certs/example.com.crt; ssl_certificate_key /etc/ssl/private/example.com.key;</code>
nginx -t
和systemctl reload nginx
的配置測試配置。是的,您可以使用單個NGINX安裝來服務不同的域。這是通過配置多個服務器塊來完成的,每個服務器塊對應於其他域。您可以實現這一目標:
/etc/nginx/sites-available/
中創建一個單獨的服務器塊文件。通過域區分服務器塊:使用server_name
指令指定服務器塊將響應的域。例如:
<code class="nginx">server { listen 80; server_name domain1.com www.domain1.com; root /var/www/domain1.com; index index.html; location / { try_files $uri $uri/ =404; } } server { listen 80; server_name domain2.com www.domain2.com; root /var/www/domain2.com; index index.html; location / { try_files $uri $uri/ =404; } }</code>
在NGINX中管理和故障排除虛擬主機配置涉及幾種最佳實踐和工具。這是您可以優化性能和解決問題的方法:
日誌記錄:使用NGINX的訪問和錯誤日志來監視和故障排除問題。訪問日誌可以幫助跟踪請求,並且錯誤日誌可以幫助識別配置問題或服務器錯誤。
<code class="nginx">access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log;</code>
nginx -t
測試NGINX配置,以捕獲語法錯誤。性能優化:
啟用GZIP壓縮:壓縮文件以減少帶寬的使用。
<code class="nginx">gzip on; gzip_types text/plain application/xml application/json;</code>
設置緩存:使用NGINX緩存來減少服務器負載並改善響應時間。
<code class="nginx">proxy_cache_path /etc/nginx/cache keys_zone=my_cache:10m; server { ... location / { proxy_pass http://backend; proxy_cache my_cache; proxy_cache_valid 200 1d; } }</code>
優化服務器設置:調整工作過程和連接以優化服務器資源。
<code class="nginx">worker_processes auto; events { worker_connections 1024; }</code>
故障排除:
curl
或瀏覽器開發人員工具:測試網站功能並測量加載時間。NGINX狀態頁面:設置一個狀態頁面以實時監視NGINX性能。
<code class="nginx">location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }</code>
通過遵循這些實踐,您可以有效地管理,優化和故障排除NGINX配置,以在單個服務器上託管多個網站。
以上是如何在多個網站中創建NGINX中的虛擬主機?的詳細內容。更多資訊請關注PHP中文網其他相關文章!