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– u1686_grawity Feb 23 '10 at 20:25