Assuming you are not using your server as a proxy,
these likely are common attempts of proxy abuse regularly seen on internet facing web servers.
The requests that received a status code of 200 probably returned your index page.
You can check this using telnet
or curl
.
Suppose that:
your sever name is site.example.org
;
third parties are trying to connect to news.example.net
and search.example.com
;
your /index.html
file contains:
<!DOCTYPE html>
<html>
<head><title>It works!</title></head>
<body><h1>It works!</h1></body>
</html>
Using curl,
you can reconstruct the requests you received like so:
$ curl site.example.org --request-target http://news.example.net/
<!DOCTYPE html>
<html>
<head><title>It works!</title></head>
<body><h1>It works!</h1></body>
</html>
Using telnet,
you can reconstruct the requests you received like so:
$ telnet site.example.org 80
> GET http://news.example.com/ HTTP/1.1
> Host: news.example.com
>
HTTP/1.1 200 OK
...
Content-Type: text/html
...
<!DOCTYPE html>
<html>
<head><title>It works!</title></head>
<body><h1>It works!</h1></body>
</html>
If you receive your index.html
as a result, that means your server
is not configured as a proxy and you should not worry about these requests.
If you actually receive the contents of news.example.com
or news.example.net
your web server is configured as a proxy.
You can deactivate this by commenting any proxy on;
lines on your Nginx configs
or by disabling mod_proxy
on your Apache configs.
Some interesting references about this:
printf 'GET http://www.google.com/ HTTP/1.1\r\n\r\n'|nc yourserver.com 80