Location served by all virtual servers
Styopa Semenukha
semenukha at gmail.com
Mon Jan 5 18:47:21 UTC 2015
On Monday, January 05, 2015 01:11:08 PM blu wrote:
> Hi, I have some configuration issue with my nginx. Currently both URLs
> return the same page when I open:
> http://domain1.com/SharedFIles and http://domain2.com/SharedFiles.
>
> Location "SharedFiles" is definied only in one virtual server (domain2)
> however it is accessible from both domains. How come?
> I'd like to have it only in a way that only domain2.com serves SharedFiles
> location.
>
> What's wrong? THank you!
>
>
> Here are two config files (doamin1 and domain2) I have in sites-available:
>
> file domain1:
> server {
> listen 80; ## listen for ipv4; this line is default and implied
> root /home/pi/webapps/domain1/public_html;
> index index.html index.htm;
> server_name *.domain1.com;
> }
>
> file domain2:
> server {
> listen 80;
> server_name *.domain2.com;
>
> access_log /home/pi/webapps/domain2/logs/nginx-access.log;
> error_log /home/pi/webapps/domain2/logs/nginx-error.log;
>
> location /SharedFiles {
> root /media/Seagate/Video;
> auth_basic "Restricted";
> auth_basic_user_file /etc/nginx/.htpasswd;
> autoindex on;
> }
> }
The hostname "domain1.com" is NOT matched by wildcard "*.domain1.com" (this
only matches subdomains), so it gets served by the default virtual host. Since
you don't have an explicit definiton of the default vhost, it's the first one
(most likely, alphabetically). In your case, the default one is
"*.domain2.com".
Solution: add "domain1.com" and "domain2.com" server names to your config.
--
Best regards,
Styopa Semenukha.
More information about the nginx
mailing list