在Nginx上配置多个站点需要完成以下步骤:
1.创建站点目录
在服务器上创建每个站点的目录,例如,假设我们要创建两个站点,一个是example1.com,另一个是example2.com。我们可以在服务器上的/var/www目录下创建两个目录,分别命名为example1.com和example2.com:
sudo mkdir /var/www/example1.com
sudo mkdir /var/www/example2.com
- 编辑nginx.conf文件
在Ubuntu系统中,Nginx的配置文件位于/etc/nginx/nginx.conf。在此文件中,可以找到http块。http块定义了全局配置。在http块中,添加以下内容:
server {
listen 80;
server_name example1.com;
root /var/www/example1.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
server {
listen 80;
server_name example2.com;
root /var/www/example2.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
上述代码共定义了两个server块。每个server块定义了一个网站配置。
其中,listen指令用于监听指定的端口,可以是任意一个未被占用的端口。server_name指令是该站点所对应的域名。root指令是该站点的文件根目录,也就是之前创建的站点目录。index指令是站点默认页面的文件名。在上面的示例中,我们指定了index.html作为站点默认页面。
location块用于处理特定的URI请求。这里的代码表示,如果某个URL请求无法找到,则尝试按以下方式处理请求:
(1)尝试直接读取$uri文件是否存在;
(2)如果没有找到,尝试读取$uri/目录是否存在且包含一个index.html文件;
(3)如果以上两种情况都不是,则返回站点默认页面。
- 重启Nginx服务
在完成以上步骤后,需要重新启动Nginx服务。可执行如下命令:
sudo service nginx restart
现在,我们可以通过浏览器访问example1.com和example2.com,来查看配置是否生效。
- 其他配置
如果要为每个站点添加SSL证书,可以使用Let's Encrypt工具来生成免费的SSL证书,以增加站点的安全性。具体方法可以参考Let's Encrypt官方文档。
示例:
假设当前我们服务器的IP地址为192.168.0.1,我们需要创建两个站点分别是www.example1.com和www.example2.com,那么我们需要做的就是按照上述步骤,在Nginx的配置文件nginx.conf中新增如下内容:
server {
listen 80;
server_name www.example1.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name www.example1.com;
ssl_certificate /etc/ssl/certs/www.example1.com.crt;
ssl_certificate_key /etc/ssl/private/www.example1.com.key;
root /var/www/example1.com;
index index.html;
access_log /var/log/nginx/example1.com.access.log;
error_log /var/log/nginx/example1.com.error.log;
location / {
try_files $uri $uri/ /index.html;
}
}
server {
listen 80;
server_name www.example2.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name www.example2.com;
ssl_certificate /etc/ssl/certs/www.example2.com.crt;
ssl_certificate_key /etc/ssl/private/www.example2.com.key;
root /var/www/example2.com;
index index.html;
access_log /var/log/nginx/example2.com.access.log;
error_log /var/log/nginx/example2.com.error.log;
location / {
try_files $uri $uri/ /index.html;
}
}
注意,我们还配置了日志记录、SSL证书路径等内容,如果域名与示例不同,需要根据实际情况修改配置文件中的server_name、SSL证书路径、站点根目录等内容。
使用如下命令重启Nginx服务:
sudo service nginx restart
这样,我们即可通过浏览器访问https://www.example1.com和https://www.example2.com访问我们新建的两个站点。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Nginx上配置多个站点的方法 - Python技术站