Question
Nginx with a domain and subdomain
Hi guys,
First timer configuring nginx here, hope you can help me.
I have my domain, let’s say www.example.com. And I have my app, which I would like to run on app.example.com
www.example.com will be running a behind a wordpress web server and appe.example.com will be running behind a nodejs server.
So this is my ngnix config file:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name example.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 150;
proxy_send_timeout 100;
proxy_read_timeout 100;
proxy_buffers 4 32k;
client_max_body_size 8m;
client_body_buffer_size 128k;
}
}
when I run ngnix -t
I get:
<^>root@ubuntu-1gb-sgp1-01:/etc/nginx/conf.d# nginx -t
nginx: [warn] conflicting server name “example.com” on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful<^>
What am I doing wrong?
Thank you
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
×
You probably just disvered as I did recently, that no matter what the nginx documentation says, they too have no clue to differenciate “plain” domain names from prefixed (subdomain) domains.
nginx evaluates:
.example.com
exampl.com
*.example.com
as true for any combination of the above.
And no. two server names in a block is NOT an nginx error.
The second block “app.example.com” will be triggered at the first block “example.com” since the latter means “*.example.com”