Nginx timeout only for subdomain - nginx

I have a problem with my Nginx configuration, I'm able to access a domain, but unable to access a "custom" subdomain of a given DNS.
www.myDomain.com => works perfectly
test.myDomain.com => works perfectly
test.myDomain2.com => ERR_CONNECTION_TIMED_OUT
I have an entry in my DNS for all the mentioned address for the same server IP, and when I ping them, they both works well.
www.myDomain2.com is a website an another domain, and I already have some subdomain redirected to other servers.
This is my config right now.
If I replace test.myDomain2.com by www.myDomain.com or test.myDomain2.com it's working (so link beetween sites-enable and available seems to be ok).
server {
listen 80;
listen [::]:80;
root /var/www/myDomain.com/html;
index index.html index.htm index.nginx-debian.html;
server_name test.myDomain2.com;
location / {
try_files $uri $uri/ =404;
}
}
No SSL involved, it's the next step !
Pretty sure I'm missing something here, but I'm unable to find the solution... A little help will be really appreciated !
édit: more information, maybe not Nginx but DNS related, but since the pings are working I'm lost..

Related

How to handle requests for forwarded domain with nginx?

I am quite new to nginx and could not figure out how to configure nginx for the following scenario:
I have a domain domain1.com at some web hoster. There, an nginx server is running on a VPS serving for domain1.com -> everything is running as expected.
I have a domain domain2.com at another web hoster. There, I configured domain2.com to be forwarded to the IP of my VPS at the first web hoster. This does not work. Calling domain2.com via browser leads to a 404 error.
My nginx configuration looks like this:
server {
root /var/www/domain2.com/public;
index index.html;
server_name domain2.com www.domain2.com;
location / {
root /var/www/domain2.com/public/html;
try_files $uri $uri/ =404;
}
}
What's missing? I guess that I have to tell nginx somehow how to get the original domain (domain2.com) since (as I assume) it currently uses the IP/domain of the second web hoster to identify the correct config. But I do not know how I can do this.

Nginx redirects to unwanted port

I’m trying to host 2 different websites - one static non-wordpress site, and one wordpress subdomain site - on my own pi server (test sites). Whenever accessing the subdomain site test.mysite.co.uk, it instead loads test.mysite.co.uk:4323 at the unwanted port 4323. The main mysite.co.uk site loads correctly however.
Initially I’ve been running these test sites locally (on different ports - the main site on port 4321 and subdomain on 4323) until I decided to deploy them using real domain names. However, presumably you cannot configure DNS to point to a specific IP and port (presumably a DNS record just points to an IP only), so I changed both the 2 domains’ conf files to listen to port 80 (as apparently you can define the server names to tell nginx which site to load - called virtual hosts?). Note that I have DNS A records for mysite.co.uk and test.mysite.co.uk that both point to the same public IP address of my router.
Nowhere is there a reference to port 4323 anymore, so I am confused as to why the subdomain still insists on forwarding to that port. I’ve been using incognito mode on chrome so there should be no caching issues. My router forwards external port 80 to internal port 80, and I’ve restarted the nginx server multiple times. The default port of my pi itself is no longer 80.
Here’s the /etc/nginx/sites-available/mysite.co.uk.conf file:
server {
listen 80;
listen [::]:80;
root /var/www/mysite.co.uk;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name mysite.co.uk www.mysite.co.uk;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
And here’s the /etc/nginx/sites-available/test.mysite.co.uk.conf file:
upstream wp-php-handler {
server unix:/var/run/php/php7.4-fpm.sock;
}
server {
listen 80;
server_name test.mysite.co.uk;
root /var/www/wp.mysite.co.uk;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass wp-php-handler;
}
}
Both .conf files are also symlinked to their respective sites-enabled folders.
Not sure if this means anything but loading local_ip:80 (or without :80 as presumably it assumes :80) in a web browser returns the Apache2 Ubuntu Default Page.
As per this post, I’ve tried adding port_in_redirect off, autoindex on and proxy_redirect http://test.mysite.co.uk:4323/ http://test.mysite.co.uk/ but to no avail.
Does anyone have any ideas of what I’m doing wrong?
UPDATE:
I've managed to create another test non-wordpress site that's exactly the same as the first non-wordpress site but called copy.mysite.co.uk, which seems to work. I'm assuming the problem with the wordpress test site may be to do with its config (although I can't see anything wrong with the code I've listed here)?

Nginx reverse proxy return 502

I'm very new to nginx and server game and i'm trying to setup a reverse proxy. Basically what i need is when i enter my server ip it should open a particular website (Ex: https://example.com).
So for example if i enter my ip (Ex: 45.10.127.942) it should open the website example.com , but the url should remain as http://45.10.127.942.
I tried to set my server configuration as follows but it returns a 502 error.
server {
listen 80;
location / {
proxy_pass http://example.com;
}
}
It returns a 502 error. Can you please explain what i need to do?
You can have something like this in your configuration file:
server {
root /var/www/html;
server_name _;
location / {
try_files $uri $uri/ /index.html;
}
}
Place the index.html file in root folder specified.
Then just restart the NGINX and it should work.
What is the problem with your configuration file is you should not proxy_pass.
If you want to open the other website, you should have DNS record pointing to that IP. What actually happens is the thing you are trying to do is known as CLICKJACKING. For more details, search CLICKJACKING on google and you will find a lot of references.

Nginx reverse proxy configuration multi domains virtualhost

I'm having trouble configuring my nginx proxy despite reading a number of guides and trying for three consecutive evenings.
Here is my topology:
(From internet) All traffic from port 80 is redirected to 192.168.1.4, a ubuntu-server virtual running nginx.
I have a NAS which has a subdomain myName.surname.com which connects to the admin page. On that NAS, I have apache webserver running hosting a couple of sites on port 81, 82,
The NAS uses virtualhosts, so domains successfully redirect (without using nginx).
I also have an ASP.NET website running on IIS on another 192.168.1.3:9810.
Now here is my NGINX configuration. I tried configuring it a few times but broke it so I've put it back to its default state:
server {
listen 80 default_server;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
proxy_pass http://192.168.1.1; #WORKS OK
}
}
If I go on myName.surname.com or wordpressWebsite.co.uk or myIISSiteDomain.co.uk I am with config above greeted with the correct page at 192.168.1.1:8080 OR 192.168.1.1:81.
It's a start.
First problem is When I navigate to any other page (not home page) like wordpressWebsite.co.uk/blog, it breaks giving 404. So I have tried to differentiate between URLs? I read that the config should be something like:
server {
listen 80;
server_name wordpressWebsite.co.uk;
location / {
proxy_pass http://192.168.1.1:81;
}
}
server {
listen 80;
server_name myName.surname.com;
location / {
proxy_pass http://192.168.1.1;
}
}
server {
listen 80 myIISSiteDomain.co.uk
location / {
proxy_pass http://192.168.1.3:9810;
}
}
But this is not quite right.
1) wordpressWebsite.co.uk loads up the page, but as soon as I go to any other link like wordpressWebsite.co.uk/blog it breaks, giving me my NAS error message like its trying to access 192.168.1.1/blog rather than the virtualhost ~/blog. It actually changes my URL in navbar to 192.168.1.1 so why is it behaving like this?
2) if I'm using virtual host, I don't think I should need to pass in the port via nginx for 192.168.1.1:81 (wordpressWebsite.co.uk). Surely I just need to point it to 192.168.1.1, and then virtualhost should detect that the url maps to 81? I'm not sure how to to do this as I don't fully understand what actually gets passed from nginx to the server?
You can add try_files $uri $uri/ /index.php?$args;
See this https://www.geekytuts.net/linux/ultimate-nginx-configuration-for-wordpress/

How to host 2 virtual hosts on nginx on www subdomains?

I am new to all this and trying hard already for 4 days without any big success. Maybe it's just a small thing and hopefully you can help me! Was not able to find an answer here so far (at least nothing worked out until now):
I have a domain, say example.com registered. I also added a subdomain test.example.com and added it as a CNAME to example.com.
Then I installed nginx and set it up following th tutorial on https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts with the minor change that I have both servers in one config file by now. In short, it looks like this:
in etc/nginx/sites-enabled/example.com
server {
listen 80;
root /var/www/example.com/html;
index index.html index.htm;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80;
root /var/www/test.example.com/html;
index index.html index.htm;
server_name test.example.com www.test.example.com;
location / {
try_files $uri $uri/ =404;
}
}
example.com works fine and shows me "welcome to example.com" in broswer tab and some text that example.com server is running as expected (defined index.html by me as in the example).
BUT: If I go to test.example.com it shows me in the tab "welcome to example.com" either although it should be "welcome to **test.**example.com" and there is no html page at all shown to me. it's just a blank page.
Can someone help me? I don't know, if I already got the stuff with the cname domain or whether there might be something wrong.
Thank you very muh in advance!:-)
I was able to solve my problem. It was not on the server but a wrong setting in my domain provider. I don't have to forward my domain but just set it in the nameservers instead pointing to the ip!

Resources