使用数字海洋通过IP在nginx服务器上配置多站点



>问题:无法访问一个nginx服务器处理的两个网站,即<<ip-address>>&<<ip-address>>/web2

数字海洋配置:

  1. 1 液滴/乌班图18/莱姆
  2. 我在CodeIgniter框架中有两个测试PHP网站
  3. 第一个网站的文件夹配置:/var/www/html/web1/
  4. 第二个网站的文件夹配置:/var/www/html/web2/

两个站点的 Nginx 服务器块配置

web1.com

server {
listen 80;
root /var/www/html/web1;
index index.php index.html index.htm index.nginx-debian.html;
server_name <<ip-address>>;
location / {
try_files $uri $uri/ /index.php;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /.ht {
deny all;
}
}

web2.com

server {
listen 80;
root /var/www/html/web2;
index index.php index.html index.htm index.nginx-debian.html;
server_name <<ip-address>>/web2;
location /web2/ {
try_files $uri $uri/ /index.php;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /.ht {
deny all;
}
}

我是nginx服务器的新手,我是根据数字海洋下的社区提供的文档做的。

请帮忙!

谢谢。

你想做的不是nginx开箱即用的方式。经过大量的摆弄,它最终可能会以这种方式工作,但我认为不值得付出努力。

请参阅,nginx 配置期望server_name是 FQDN(完全限定域名(或 IP 地址,而不是带有路径的完整 URL。 在您的情况下,对 ip-address/web2 的请求实际上可能与 web1 的配置匹配(因此将您指向不存在的/var/www/html/web1/web2/(

解决此问题的最佳方法(假设您希望将两个站点保留在同一个快捷滴上(:为每个站点获取 FQDN。它可以是您已经拥有的域的子域(即 web1.sharad.com 和 web2.sharad.com(...然后在nginx的每个配置文件上使用适当的服务器名称(web1.sharad.com 和 web2.sharad.com(,检查拼写错误和错误sudo nginx -t如果一切正常,则重新启动nginx并sudo systemctl restart nginx

相关内容

  • 没有找到相关文章

最新更新