Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
This comment has been deleted
Its nice article, but i need a help, how can i protect VPS information from whois like sites ? Actually when i tried to search DO hosted mysite on google, i found several links which contain the VPS IP and other information like nginx versions.
Good article, but your information regarding “expose_php” is incredibly limited.
I am running PHP5-FPM and there is a php.ini file located at /etc/php5/fpm/php.ini, but adding “expose_php = Off” and restarting the service does nothing.
What is the correct way to hid X-Powered-By on an Nginx server running PHP5-FPM? An example of code would be great.
When i try to secure the /wp-admin/ directory by
server {
...
location /wp-admin/ {
allow 192.168.1.1/24;
allow 10.0.0.1/24;
deny all;
}
The server blocks me too, though i put my IP on allow. On checking the nginx logs, i find this -
[error] 32638#0: *1 access forbidden by rule, client: ip.xx.xx.xx, server: testdomain.com, request: "GET /wp-admin/ HTTP/1.1", host: "testdomain.com"
Any ideas? Thanks. (P.S - I don’t know if it matters but, I use Cloudflare, whose IPs i’ve already whitelisted)
I installed Wapiti-2.2.1 and ran wapiti https://mywebsite.com -n 10 -b folder however, I keep getting the below error and it never generates a report for me. Any suggestions?
File “/usr/bin/wapiti”, line 444, in <module> wap.browse(crawlerFile) File “/usr/bin/wapiti”, line 238, in browse self.urls, self.forms = self.HTTP.browse(crawlerFile) File “/usr/share/wapiti/net/HTTP.py”, line 74, in browse self.myls.go(crawlerFile) File “/usr/share/wapiti/net/lswww.py”, line 499, in go headers = self.browse(lien) File “/usr/share/wapiti/net/lswww.py”, line 205, in browse info, data = self.h.request(url, headers = self.cookiejar.headers_url(url)) File “/usr/lib/python2.7/dist-packages/httplib2/init.py”, line 1569, in request (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) File “/usr/lib/python2.7/dist-packages/httplib2/init.py”, line 1316, in _request (response, content) = self._conn_request(conn, request_uri, method, body, headers) File “/usr/lib/python2.7/dist-packages/httplib2/init.py”, line 1285, in _conn_request response = conn.getresponse() File “/usr/lib/python2.7/httplib.py”, line 1051, in getresponse response.begin() File “/usr/lib/python2.7/httplib.py”, line 415, in begin version, status, reason = self._read_status() File “/usr/lib/python2.7/httplib.py”, line 371, in _read_status line = self.fp.readline(_MAXLINE + 1) File “/usr/lib/python2.7/socket.py”, line 476, in readline data = self._sock.recv(self._rbufsize) File “/usr/lib/python2.7/ssl.py”, line 341, in recv return self.read(buflen) File “/usr/lib/python2.7/ssl.py”, line 260, in read return self._sslobj.read(len) ssl.SSLError: The read operation timed out
The addition step to take is to add WAF layer to NGINX instances. There are mod_security and naxsi which are open-source. But if you’re looking for something Enterprise-ready I would recommend Wallarm: WAF for NGINX as uses machine learning to craft the blocking rules specifically for every API and application you have. Moreover, it checks if detected attack is really targeting vulnerabilities and therefore dangerous (don’t know if any other WAF has vulnerability scanner built-in to do so).
In any case, WAF for NGINX rocks! Recommend to do it ASAP.
Hi Dojam,
I already have the .crt and .key files. How can I upload these to the etc/nginx/ssl folder manually?
Thanks for a great article.