一、Nginx的概念和作用
Nginx是一款輕量級的高性能Web服務器,也可以作為反向代理服務器、負載均衡服務器,在Web項目部署中扮演着重要的角色。
作為Web服務器,Nginx的主要作用是接收並響應HTTP或HTTPS請求,將相應的HTML、CSS、JavaScript等文件返回到瀏覽器端。在反向代理和負載均衡中,Nginx可以將請求轉發給後端服務器進行處理,提高系統的可用性和性能。
以下是一個Nginx配置文件的示例:
user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 1024; multi_accept on; } http { server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html; } location /api/ { proxy_pass http://localhost:3000/; } } }
二、安裝和配置Nginx
在Ubuntu服務器上安裝Nginx的命令為:
sudo apt-get update sudo apt-get install nginx
安裝完成後,在默認配置文件/etc/nginx/nginx.conf中,可以對Nginx進行個性化配置。一般採用修改配置文件的方式進行配置。
下面是一個基本的Nginx配置文件示例:
user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 1024; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
三、虛擬主機和域名配置
在Nginx中,可以通過配置虛擬主機來支持多個域名的訪問。例如,在配置文件中新增一個server塊,並設置server_name為域名,就可以實現對該域名的支持。
下面是一個簡單的虛擬主機和域名配置示例:
server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html; } }
其中,listen指定監聽的端口,server_name指定域名,location指定訪問根目錄時所返回的文件。
四、HTTPS和SSL證書配置
HTTPS是HTTP的安全版,可以確保數據在傳輸過程中的安全性和完整性,常用於金融、電商等場景,因此在Web項目部署中,也需要對其進行支持。
為了實現HTTPS,需要在Nginx中配置SSL證書。下面是一個配置SSL證書的示例:
server { listen 443 ssl; ssl_certificate /etc/nginx/ssl/example.crt; ssl_certificate_key /etc/nginx/ssl/example.key; server_name example.com; location / { root /usr/share/nginx/html; index index.html; } }
其中,listen指定監聽的端口,ssl_certificate和ssl_certificate_key分別指定SSL證書和私鑰的位置,server_name指定域名。
五、反向代理和負載均衡配置
在處理大量請求時,單個應用服務器可能會出現瓶頸,因此需要採用反向代理和負載均衡的方式,將請求分攤到多個應用服務器上,提高系統的可用性和性能。
Nginx通過ngx_http_upstream_module模塊實現反向代理和負載均衡。下面是一個反向代理和負載均衡配置的示例:
upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; server_name example.com; location / { proxy_pass http://backend/; } }
其中,upstream指定後端服務器的地址,server指定服務器的地址和端口,proxy_pass指定反向代理的路徑。
六、緩存配置
在Web應用中,緩存可以大大提高用戶的訪問速度和系統的性能。Nginx自帶緩存功能,可以設置緩存時間和緩存大小。
下面是一個緩存配置的示例:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m; server { listen 80; server_name example.com; location / { proxy_cache my_cache; proxy_cache_valid 200 1m; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_pass http://backend/; } }
其中,proxy_cache_path指定緩存路徑和大小,proxy_cache_valid指定緩存時間,proxy_cache_key指定緩存的鍵名。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285772.html