I'd like to have the IP of my server be rewritten as a domain name url but I'm having the hardest time figuring out how to make this happen.
For example, when I enter 213.34.54.xxx in the browser, I'd like it to be rewritten as mydomain.com and NOT display the IP address.
My current configuration is as follows:
/etc/nginx/nginx.conf
user www-data;
worker_processes 2;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
server_names_hash_bucket_size 64;
sendfile on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/mydomain;
}
/etc/nginx/sites-enabled/mydomain
upstream unicorn {
server unix:/tmp/unicorn.mydomain.sock fail_timeout=0;
}
server {
listen 80 default;
server_name localhost;
root /home/deployer/apps/mydomain/current/public;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @unicorn;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
I've tried adding this to the server directive in mydomain configuration file:
rewrite ^ $scheme://mydomain.com$request_uri redirect;
but I get a TOO MANY REDIRECTS ERROR in my browsers.
At the very least, I'm able to prevent the IP address from being displayed by using this in the server directive:
if ($host !~* ^www\.) {
rewrite ^(.*)$ http://www.$host$1 permanent;
}
However, this is listed as one of the pitfalls on the nginx site :(
Any insights of what I might be doing wrong would be GREATLY appreciated!
Thanks!
NGINX Return directive The easiest and cleaner way to rewrite an URL can be done by using the return directive. The return directive must be declared in the server or location context by specifying the URL to be redirected.
Visitor–> Website Page–> Website is under maintenance. On the other hand, a permanent Nginx redirect informs the web browser that it should permanently link the old page or domain to a new location or domain. To map this change, the redirects response code 301 is used for designating the permanent movement of a page.
Actually the answer above does not work (at least for me). I suppose since the question has been raised the asker has found his solution, but since I searched on google and a lot of links go here, maybe this solution will help other people, simply add this to your conf file:
server {
server_name 162.13.171.178;
# you can add other server_name if you need other IPs
# or domain names such as without the www
add_header X-Frame-Options "SAMEORIGIN";
return 301 $scheme://www.example.com$request_uri;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With