Nginx通过虚拟主机(server blocks)可以在一台服务器上托管多个网站。以下是配置Nginx虚拟主机来管理多个网站入口的详细指南:
sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html
sudo chown -R $USER:$USER /var/www/example1.com/html
sudo chown -R $USER:$USER /var/www/example2.com/html
为每个网站创建简单的index.html测试页面。
sudo nano /etc/nginx/sites-available/example1.com
server {
listen 80;
server_name example1.com www.example1.com;
root /var/www/example1.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
在/etc/nginx/nginx.conf
的http块中添加多个server块:
http {
# ...
server {
listen 80;
server_name example1.com www.example1.com;
root /var/www/example1.com/html;
# 其他配置...
}
server {
listen 80;
server_name example2.com www.example2.com;
root /var/www/example2.com/html;
# 其他配置...
}
}
server {
listen 443 ssl;
server_name example1.com www.example1.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
root /var/www/example1.com/html;
# 其他配置...
}
server {
listen 80;
server_name example1.com www.example1.com;
return 301 https://$server_name$request_uri;
}
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
location / {
proxy_pass http://backend;
}
}
sudo nginx -t
sudo systemctl restart nginx
组织配置文件:
sites-available
和sites-enabled
目录结构安全考虑:
性能优化:
日志管理:
通过以上配置,您可以在一台Nginx服务器上高效地托管和管理多个网站,每个网站都有独立的配置和资源。