serving pdfjs PDFs over nginx - nginx

I am looking to serve pdf.js using nginx, but Iam having trouble with the example so far. So, I do the following:
git clone git://github.com/mozilla/pdf.js.git /some/location/pdfjs
cd /some/location/pdfjs
.. Now, I set up my nginx config file like so:
server {
listen 8181 default_server;
listen [::]:8181 default_server ipv6only=on;
# Make site accessible from http://localhost/
server_name localhost;
root /some/location/pdfjs/web;
index viewer.html;
access_log /some/location/access.log;
error_log /some/location/error.log;
location / {
}
}
When I run nginx now, I the PDF does not show up. I do see the pdf.js outer canvas though - just not serving the PDF file.
When I look at the error messages, I see:
2014/12/10 16:28:32 [error] 15549#0: *1 open() "/some/location/pdfjs/web/external/webL10n/l10n.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /external/webL10n/l10n.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *2 open() "/some/location/pdfjs/web/src/shared/util.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/shared/util.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *3 open() "/some/location/pdfjs/web/src/display/api.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/api.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *4 open() "/some/location/pdfjs/web/src/display/metadata.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/metadata.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *5 open() "/some/location/pdfjs/web/src/display/canvas.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/canvas.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *6 open() "/some/location/pdfjs/web/src/display/webgl.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/webgl.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *1 open() "/some/location/pdfjs/web/src/display/pattern_helper.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/pattern_helper.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *2 open() "/some/location/pdfjs/web/src/display/font_loader.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/font_loader.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
2014/12/10 16:28:32 [error] 15549#0: *3 open() "/some/location/pdfjs/web/src/display/annotation_helper.js" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /src/display/annotation_helper.js HTTP/1.1", host: "127.0.0.1:8181", referrer: "http://127.0.0.1:8181/"
Not sure if this has got to do with serving the actually PDF - would appreciate any suggestions to solve this.

Related

nginx 502 for 10s while upstream is restarting

I have a very simple config:
server {
listen 80;
server_name: example.fr;
location / {
proxy_pass http://localhost:8000;
}
}
However when I restart my backend (for example Node.JS restarted on change by nodemon), even if the backend starts like in 2 seconds, Nginx returns a 502 for 10s and this shows in the logs:
2022/05/10 16:10:48 [error] 2013398#2013398: *2241 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://127.0.0.1:8000/", host: "example.fr"
2022/05/10 16:10:48 [error] 2013398#2013398: *2241 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://[::1]:8000/", host: "example.fr"
2022/05/10 16:10:49 [error] 2013398#2013398: *2244 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:50 [error] 2013398#2013398: *2245 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:51 [error] 2013398#2013398: *2246 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:52 [error] 2013398#2013398: *2247 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:53 [error] 2013398#2013398: *2248 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:54 [error] 2013398#2013398: *2249 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:55 [error] 2013398#2013398: *2250 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:57 [error] 2013398#2013398: *2251 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
2022/05/10 16:10:58 [error] 2013398#2013398: *2252 no live upstreams while connecting to upstream, client: 127.0.0.1, server: example.fr, request: "HEAD / HTTP/2.0", upstream: "http://localhost/", host: "example.fr"
I've seen that for the upstream directive there are some controls (max_fails and fail_timeout (http://nginx.org/en/docs/http/ngx_http_upstream_module.html#max_fails)) but this only seems to apply to upstream and I cannot find equivalent options for plain proxy_pass.
Any idea?
Short answer: Replace localhost with 127.0.0.1.
Quoting user #rogerdpack for the long answer:
The really tricky part is that if you specify proxy_pass to
"localhost" and your box happens to also have ipv6 and ipv4 "versions
of localhost" on it at the same time (most boxes do by default), it
will count as if you had a "list" of multiple servers in your server
group, which means you can get into the situation above of having it
return "502 for 10s" even though you list only one server.
See here "If a domain name resolves to several addresses, all of them
will be used in a round-robin fashion." One workaround is to declare
it as proxy_pass http://127.0.0.1:8000; (its ipv4 address) to
avoid it being both ipv6 and ipv4. Then it counts as "only a
single server" behavior.
(answering my own question because the answers explaining the problem were buried or the question wasn't really explicit about the particular symptoms I had)

Nginx Cloudflare Wordpress Intermittent 521 Error

I have multiple Wordpress sites running on an EC2 instance. The instance runs nginx, and I configure the 2 wordpress sites and three static html sites to folders in /var/www/html.
Every few weeks, the entire thing goes down and I can't figure out why. There are a number of errors in the /var/log/nginx-error.log file. I can always restart the server with service nginx restart.
I'm not sure if this is because I have multiple sites or if someone has been hacking into my server. I have turned off comments on all of my sites to avoid potential issues.
The site receives very little real traffic, but Cloudflare is telling me there have been 17,885 requests in the last month.
Is there a way I can save this server so it doesn't continuously fall over?
Here are the final few rows of the error file from the latest fail. Happy to post more if it will help.
2021/01/05 17:44:19 [error] 15327#0: *43617 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 172.68.239.172, server: coreygarvey.com, request: "GET /up.php HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 18:04:18 [error] 15327#0: *43622 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 172.69.62.221, server: coreygarvey.com, request: "GET /wp-login.php HTTP/1.1", host: "www.coreygarvey.com", referrer: "http://coreygarvey.com/wp-login.php"
2021/01/05 19:34:26 [error] 15327#0: *43674 open() "/var/www/html/home/.env" failed (2: No such file or directory), client: 108.162.216.185, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "coreygarvey.com"
2021/01/05 19:34:26 [error] 15327#0: *43674 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 108.162.216.185, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "coreygarvey.com"
2021/01/05 19:58:22 [error] 15327#0: *43699 open() "/var/www/html/home/owa/auth/logon.aspx" failed (2: No such file or directory), client: 192.241.209.91, server: coreygarvey.com, request: "GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f HTTP/1.1", host: "52.7.66.46"
2021/01/05 19:58:22 [error] 15327#0: *43699 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 192.241.209.91, server: coreygarvey.com, request: "GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f HTTP/1.1", host: "52.7.66.46"
2021/01/05 20:05:39 [error] 15327#0: *43713 open() "/var/www/html/home/.env" failed (2: No such file or directory), client: 162.158.79.160, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:05:39 [error] 15327#0: *43713 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.79.160, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:18:46 [error] 15327#0: *43722 open() "/var/www/html/home/robots.txt" failed (2: No such file or directory), client: 108.162.246.22, server: coreygarvey.com, request: "GET /robots.txt HTTP/1.1", host: "coreygarvey.com"
2021/01/05 20:18:46 [error] 15327#0: *43722 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 108.162.246.22, server: coreygarvey.com, request: "GET /robots.txt HTTP/1.1", host: "coreygarvey.com"
2021/01/05 20:25:00 [error] 15327#0: *43725 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 173.245.52.168, server: coreygarvey.com, request: "GET /wp-content/plugins/ioptimizations/IOptimizes.php?hamlorszd HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:25:00 [error] 15327#0: *43727 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.62.203, server: coreygarvey.com, request: "GET /blog/wp-content/plugins/ioptimizations/IOptimizes.php?hamlorszd HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:25:03 [error] 15327#0: *43729 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.154.198, server: coreygarvey.com, request: "GET /wp/wp-content/plugins/ioptimizations/IOptimizes.php?hamlorszd HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 20:25:03 [error] 15327#0: *43729 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.154.198, server: coreygarvey.com, request: "GET /wordpress/wp-content/plugins/ioptimizations/IOptimizes.php?hamlorszd HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 22:23:03 [error] 15327#0: *43807 open() "/var/www/html/home/robots.txt" failed (2: No such file or directory), client: 162.158.78.139, server: coreygarvey.com, request: "GET /robots.txt HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 22:23:03 [error] 15327#0: *43807 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 162.158.78.139, server: coreygarvey.com, request: "GET /robots.txt HTTP/1.1", host: "www.coreygarvey.com"
2021/01/05 22:48:13 [error] 15327#0: *43836 open() "/var/www/html/home/.env" failed (2: No such file or directory), client: 40.86.206.98, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "52.7.66.46"
2021/01/05 22:48:13 [error] 15327#0: *43836 open() "/var/www/html/home/404.html" failed (2: No such file or directory), client: 40.86.206.98, server: coreygarvey.com, request: "GET /.env HTTP/1.1", host: "52.7.66.46"
We encountered ioptimizations (your log mentions /wordpress/wp-content/plugins/ioptimizations/IOptimizes.php) a year back, its pure malware, inspect the code, it creates a form to upload a file, and it will execute it (and can thus install more garbage). My bet is that this is where your troubles come from.
We use Wordfence as protection on the Wordpress website, it blocks anything that tries te execute outside of Wordpress, so it could do no damage in our case (so I recommend using it).
We have tried informing Wordpress dev team about this. Just having a malicious plugin is one thing, but how it manages to install itself on its own on your website is a serious concern (and would imply some vulnerability in Wordpress being exploited). But our complaints got ignored, and there is a serious lack of information to be found on this when try to google it (I happened to stumble upon yours to see if there was more information about it by now).
So I would recommend anti malware plugins (wordfence) and do a thorough cleaning, make sure to get rid of ioptimizations and look for any other damage it might have caused.
This is my first post on stackoverflow, I hope I did this right.
Good luck!

laravel valet-linux redirect error

I'm running the very useful valet-linux package for my local dev environment. I recently updated it (using composer global update), and now my local Joomla dev sites are not loading properly.
The error in ~/.valet/Log/nginx-error.log shows multiple occurrences of
2018/08/11 11:00:28 [error] 7825#7825: *11 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js?95ac38c67651723d445944ba719bf971 HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *38 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /media/jui/js/bootstrap.min.js?95ac38c67651723d445944ba719bf971 HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *40 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /media/mod_sampledata/js/sampledata-process.js HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *42 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /media/system/js/core.js?95ac38c67651723d445944ba719bf971 HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *44 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /administrator/templates/isis/js/template.js?95ac38c67651723d445944ba719bf971 HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
2018/08/11 11:00:28 [error] 7825#7825: *62 rewrite or internal redirection cycle while processing "/home/admin/.config/composer/vendor/cpriego/valet-linux/server.php", client: 127.0.0.1, server: , request: "GET /administrator/templates/isis/images/logo.png HTTP/1.1", upstream: "fastcgi://unix:/home/admin/.valet/valet.sock", host: "joomla310.test", referrer: "http://joomla310.test/administrator/index.php"
I'm fairly experienced with Apache, but I don't know where to begin debugging the nginx errors. Has anyone run into this?
Uninstalling and re-installing valet-linux resolved the issue. Still not sure what had happened.

nginx error log - request from unknown hosts

I am getting request from unknown hosts in nginx error.log trying to request files or requests which don't exist in the system.
Receiving below list of errors in error log,
directory index is forbidden, client: 61.157.96.126, request: "GET http://www.haosou.com/?rands=_688651072032161501826712 HTTP/1.1", host: "www.haosou.com"
[error] 10006#0: *67753 open() /favicon.ico" failed (2: No such file or directory), client: 95.25.186.223, request: "POST http://t3.proxy-checks.com/favicon.ico HTTP/1.1", host: "t3.proxy-checks.com"
[error] 10006#0: *66849 directory index of "--" is forbidden, client: 120.132.95.89, request: "GET http://www.qunar.com/ HTTP/1.1", host: "www.qunar.com"
What could be the issue here? Do I need to make any configuration changes on my server to stop such requests? or Is it ok to receive such requests on server?

WordPress Crashing, nginx and fastcgi issue?

I currently have this problem with my wordpress website where it will work for about a day after a server restart, but then hit this set of errors:
2015/12/15 22:06:42 [crit] 12650#0: *28 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 46.166.139.20, server: example.com, request: "POST /xmlrpc.php HTTP/1.0", $
2015/12/15 22:08:19 [error] 3216#0: *18 FastCGI sent in stderr: "PHP message: PHP Warning: trim() expects parameter 1 to be string, array given in /var/www/html/wp-includes/option.php on line 30
PHP message: PHP Warning: trim() expects parameter 1 to be string, array given in /var/www/html/wp-includes/option.php on line 30" while reading response header from upstream, client: 104.33.64.70, server: example.com, request: "P$
2015/12/15 22:40:08 [error] 3216#0: *197 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 180.76.15.142, server: example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/$
2015/12/15 22:40:20 [error] 3216#0: *199 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 180.76.15.19, server: example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/v$
2015/12/15 23:08:27 [error] 3216#0: *201 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 180.76.15.143, server: example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/$
2015/12/15 23:08:39 [error] 3216#0: *203 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 180.76.15.12, server: example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/v$
2015/12/15 23:20:20 [error] 3216#0: *205 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 104.33.64.70, server: example.com, request: "GET /wp-admin/upgrade.php?step=1&backto=%2Fwp$
2015/12/15 23:22:20 [error] 3216#0: *205 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 104.33.64.70, server: example.com, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcg$
2015/12/15 23:57:09 [error] 3216#0: *367 connect() to unix:/var/run/php5-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 46.166.139.20, server: example.com, request: "POST /xmlrpc.php HT$
2015/12/15 23:57:39 [error] 3216#0: *369 connect() to unix:/var/run/php5-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 46.166.139.20, server: example.com, request: "POST /xmlrpc.php HT$
2015/12/15 23:57:41 [error] 3216#0: *371 connect() to unix:/var/run/php5-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 46.166.139.20, server: example.com, request: "POST /xmlrpc.php HT$
2015/12/15 23:57:56 [error] 3216#0: *373 connect() to unix:/var/run/php5-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 46.166.139.20, server: example.com, request: "POST /xmlrpc.php HT$
Afterwards, the error log just repeats that (11: Resource temporarily unavailable) code over and over. At this point trying to access the website itself just gives an nginx "an error has occurred" page, telling me to check error logs.
I don't know what exactly is causing the initial holdup, and it looks like after a few time outs the server just locks up entirely. Any advice? Thanks!
Someone from 46.166.139.20 tries to guess your password. If you don't use WP's XML-RPC you should disable it.

Resources