Server Setup:
- VPS
- Plesk 12.5
- Centos 7
- NGINX as reverse proxy to Apache 2.4
- Path to NGINX config: /etc/nginx/nginx.conf
Plesk provides a GUI Apache & nginx Settings dialog box, but is unable to accept server{} blocks from there.
I’ve tried the following, and several variations thereof, without success:
server {
server_name xx.xx.xx.xx;
return 301 https://domain.com$request_uri
}
Here’s another example of what we are trying to do and need to know where to place the code so NGINX reads and honors the instruction for execution.
server {
server_name newdomain.com www.newdomain.com;
# ngx_pagespeed & ngx_pagespeed handler
#include /usr/local/nginx/conf/pagespeed.conf;
#include /usr/local/nginx/conf/pagespeedhandler.conf;
#include /usr/local/nginx/conf/pagespeedstatslog.conf;
# limit_conn limit_per_ip 16;
# ssi on;
access_log /home/nginx/domains/newdomain.com/log/access.log combined buffer=32k;
error_log /home/nginx/domains/newdomain.com/log/error.log;
root /home/nginx/domains/newdomain.com/public;
location / {
# block common exploits, sql injections etc
#include /usr/local/nginx/conf/block.conf;
# Enables directory listings when index file not found
#autoindex on;
}
location /forums {
try_files $uri $uri/ /index.php;
}
location ~^(/forums/page/).*(.php)$ {
try_files $uri $uri/ /index.php;
}
# Mask fake admin directory
location ~^/forums/admin/(.*)$ {
deny all;
}
# Secure real admin directory
location ~^(/forums/mynewadmin/).*(.php) {
#allow 127.0.0.1;
#deny all;
#auth_basic "Restricted Area";
#auth_basic_user_file $document_root/forums/mynewadmin/.htpasswd;
include /usr/local/nginx/conf/php.conf;
}
# IP.Board PHP/CGI Protection
location ~^(/forums/uploads/).*(.php)$ {
deny all;
}
location ~^(/forums/hooks/).*(.php)$ {
deny all;
}
location ~^(/forums/cache/).*(.php)$ {
deny all;
}
location ~^(/forums/screenshots/).*(.php)$ {
deny all;
}
location ~^(/forums/downloads/).*(.php)$ {
deny all;
}
location ~^(/forums/blog/).*(.php)$ {
deny all;
}
location ~^(/forums/public/style_).*(.php)$ {
deny all;
}
include /usr/local/nginx/conf/staticfiles.conf;
include /usr/local/nginx/conf/php.conf;
include /usr/local/nginx/conf/drop.conf;
#include /usr/local/nginx/conf/errorpage.conf;
}
Where do I need to place this or similar directing in this scenario to direct all direct IP traffic to the domain name? I’ve tried placing the snippet in various NGINX config files so far without success.
Thanks.
2
Answers
Most easy way is to set
default domain
for IPxx.xx.xx.xx
todomain.com
inTools & Settings > IP addreses > xx.xx.xx.xx
Also you can create
.htaccess
file in web root ofdomain.com
with content:Why it does not work via Additional directives?
You can try to add this into Nginx’s “additional directives” in UI:
I’ve ignore all system-wide and commented settings. Also you can try to add content from
Pay attention that your web site root is placed into
/httpdocs
folder, according to this config I’ve see that you web root was inpublic
directory.