Ubuntu nginx服务器上的子域configuration

我有一个2核心,2 GB的RAM VPS与我的项目从数字海洋的专用IP地址。 我使用nginx作为networking服务器,MySQL作为数据库服务器并绑定为DNS服务器。

我的项目是一个免费的托pipe平台,用于教育目的。 我将教PHP和MySQL给我附近的学生,我希望他们在PHP和MySQL的支持下,在自己的子域上进行练习。

例如,如果我的主域名是example.com ,我也会为我的域名设置通配符SSL,学生子域名应该像student1.example.com

学生将能够使用我用PHP编写的安装脚本自动select子域来激活他们的networking空间。

如何在不使用任何Webpipe理控制面板的情况下实现我想要的function? 学生select的子域如何解决我的主域?

学生可以在这样的设置上使用自己的TLD域名吗?

你对这种设置有什么build议吗?

没有太多的configuration是必需的。

首先,您使用通配符logging来设置您的域名,如:

 *.example.com 300 IN A MY.IP.AD.DR 

然后,您将Nginx设置为匹配正则expression式服务器名称 ,根据用户名,您可以从中为不同的文件夹提供服务。

 server { listen 80; listen 443 ssl; server_name ~ ^(?<user>.+)\.example\.com$; ssl_certificate /path/to/cert; ssl_certificate_key /path/to/key; location / { # Set root directory depending on the domain name. root /var/www/$user; # Try to serve the file before calling PHP. try_files $uri $uri/ @proxy; } location @proxy { fastcgi_pass PHP.FPM.AD.DR:PORT; } } 

但请注意,无论目标域名是什么,您都需要通配符SSL证书才能生效。