一、安裝Nginx
要想搭建一個高性能的Web服務器,首先需要安裝Nginx。在Linux系統的終端中輸入以下命令:
sudo apt-get update
sudo apt-get install nginx
安裝完成後,需要啟動Nginx並設置為開機自啟動。
sudo systemctl start nginx
sudo systemctl enable nginx
通過以上命令,已經成功安裝、啟動和設置Nginx自啟動了。
二、配置Nginx
在安裝Nginx後,需要對Nginx進行配置才能真正搭建一個高性能的Web服務器。以下是一個簡單的Nginx配置文件示例:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
#multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_tokens off;
server {
listen 80 default_server;
listen [::]:80 default_server;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then fall back to
# a2templating
try_files $uri $uri/ =404;
add_header Allow "GET, POST, HEAD" always;
}
location /api {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ /\.ht {
deny all;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}
}
以上配置文件中,我們設置了Nginx的worker進程數量、日誌路徑、監聽的端口號、設置默認頁面等信息。另外,我們在location節點下面可以看到設置了代理服務器(/api)和php相關信息。
三、配置SSL證書
SSL證書可以保證網站的安全性,在配置好Nginx後,可以進一步配置SSL證書來保證網站安全。
首先需要安裝openssl:
sudo apt-get install openssl
接着,在/etc/nginx/sites-available目錄下新建一個默認網站配置文件(我們假設文件名為default.conf),並在其中加上以下內容:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/key.pem;
# SSL security settings
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECD$
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# Hide server version
server_tokens off;
location / {
...
}
}
以上代碼中的ssl_certificate和ssl_certificate_key需要修改為您自己的SSL證書文件。在修改完成後,需要重新啟動Nginx。
四、性能優化
為了使Nginx的性能更好,在配置中可以添加一些優化參數,例如:
worker_processes auto;
events {
worker_connections 100000;
use epoll;
multi_accept on;
}
http {
...
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
}
其中,worker_processes設置為auto表示Nginx將會根據服務器的CPU核心數自動選擇Worker進程數量。events節點下設置了worker_connections表示每個Worker進程可同時處理的最大連接數,use epoll代表使用epoll模式,multi_accept on代表允許一次性接收多個請求。
五、防止惡意攻擊
Nginx提供了一些限制和阻止惡意請求的功能。例如,在配置文件中可以設置最大連接數、最大請求速率等:
http {
...
limit_conn_zone $binary_remote_addr zone=limitzone:10m;
limit_req_zone $binary_remote_addr zone=limitzone:10m rate=20r/s;
server {
...
# Max connections from one IP address
limit_conn limitzone 10;
# Limit request rate to prevent DDoS attacks
limit_req zone=limitzone burst=30 nodelay;
}
}
以上配置將會限制來自同一個IP地址的最大連接數為10,最多每秒鐘處理20個請求。同時,一旦超過請求速率,將會拒絕處理請求。
六、總結
通過以上幾個方面的配置,我們就可以在Linux系統上搭建一個高性能的Web服務器。在實際的生產環境中,還需根據不同的業務需求進行更加詳細的配置。但是,以上提到的基礎設置和性能優化設置,在絕大多數情況下都能保證服務器的高性能和安全性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/258646.html