如何配置nginx为多个URL提供不同的资源

如何配置nginx为多个URL提供不同的资源

我遇到过几个演示如何使用 Nginx 设置多个域的示例,但我的 URL 提供的资源与网页域不同。

这些场景之间的配置要求是否存在差异?

答案1

Nginx 对每个域都有配置,正如我建议的那样,复制默认配置并更改域的参数(服务器块)作为示例

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/yourdomain.com

现在打开新配置并设置您的参数:

server {
 listen 80 default_server;
 listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html;
 index index.html index.htm; 
server_name localhost;
 location / { try_files $uri $uri/ =404; 
} 
}

Root is your directory
root /var/www/yourdomain.com/html;

Each statement need end with ;

Servername is your domain name
server_name your domain.com www.yourdomain.com;

最后,需要配置您的服务器块链接并重新启动 nginx

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/secounddomain.com /etc/nginx/sites-enabled/

我们可以通过简单地删除符号链接来禁用默认服务器块文件。它仍然可以在站点可用目录中供参考,但 Nginx 在启动时不会读取它:

sudo rm /etc/nginx/sites-enabled/default 

我们还需要在默认的 Nginx 配置文件中快速调整一个设置。输入以下命令打开它:

sudo nano /etc/nginx/nginx.conf 

我们只需要取消注释一行即可。找到并删除此评论:

server_names_hash_bucket_size 64; 

现在,我们准备重新启动 Nginx 以启用您的更改。您可以通过键入以下内容来做到这一点:

sudo service nginx restart

最后你需要在操作系统中设置你的主机名

sudo nano /etc/hosts
127.0.0.1 localhost 
127.0.0.1 guest-desktop 
111.111.111.111 yourdomain.com
 111.111.111.111 secounddomain.com

在浏览器中测试您的域名 http://yourdomain.com 如果您遇到问题,请检查 nginx 日志并发送错误或启动日志

相关内容