Do I need Nginx?

Hello everyone!

I’m totally newbie in the Linux world so my questions are rather stupid so I’m sorry about that.

I’m going to get NC on my VPS on Ubuntu 20.04 thru a docker.

My questions are:

  1. There are a lot of tutorials showing that Nginx is necessary. But no one explains why it’s needed and even Google couldn’t help me.
    Could someone give me the detail explanation why is it using for NC?? As far as I know NC uses the Apache web server and is it not enough? May I miss Nginx installation?

  2. Do I really need Let’s encrypt, cerbot and that other https stuff for ordinary home using?

  3. Is there a real way to integrate Microsoft Office Online to NC?
    I don’t need OnlyOffice.

Thank you very much!

Hi @Immick

That depends on your infrastructure and how you want to set up things. Nginx can either be used as an alternative to apache in order to serve Nextcloud or it can be used as a Reverse Proxy in front of a Nextxloud server, which uses either apache or nginx. So no, nginx is not a mandatory component in order to host a Nextcloud server.

HTTPS it’s not an absolute necessity in a home network, but I would still recommend using it. You could also set up self-signed certificates, if you only use it inside your LAN. But if you plan to make Nextcloud accessable from the Internet and / or want to share files with others outside of your local network, HTTPS with a valid certificate is an absolute must!

There is an integration. But this works only for an “on premise” Microsoft Office Online server. GitHub - nextcloud/officeonline: officeonline

If you are using the cloud-based Microsoft Office, respective M365, my question would be, why do you need a Nextcloud server at all? Wouldn’t it be easier to just leave the files on OneDrive and call it a day? I mean you don’t gain much in regards of privacy and data sovereignty, if you set up a Nextcloud server but at the same time still use MS cloud services to edit your files.

nextcloud is based on php code. in order to run nextcloud you need a “php engine”. the “php engine” generates html code. the html code is send to your browser via web server.

apache is a web server with a buildin “php engine”. so both php and html can be handled by apache web server.

alternative there is the php-fpm engine. that engine can’t handle html and therefore needs an additional web server in front off it. thats the part where nginx comes in.

which one is better i can’t tell you. there are tons of articles on the internet comparing the two. as far as i can see: for home users it doesn’t matter.

another purpose of nginx is “reverse proxy”. if you run more than one web service on your server you need a kind router. that is a web server to handle all request to this server and its services. and do the tls (letsencrypt) stuff. in this kind of setup you could have two nginx running on your server. again for your purpose right now this is overkill.