How to server cifi shared folder using nginx.
2016-11-07Setup
Create folder /media/storage/dir/
mkdir -p /media/storage/dir/
Next, mount shared directory. uid and gid are very important because without this you will get 403 Forbidden.
sudo mount -t cifs -o uid=www-data,gid=www-data,ro,username=username,password=password //10.0.0.2/shared/ /media/storage/dir/
-t cifs- type of fs (cifs- Common Internet File System, also known assmb)uid- specific usergid- specific groutpro- read-onlyrw- read-writeusername- shared directory usernamepassword- shared directory password
Modify nginx config (/etc/nginx/sites-available/somefile)
#...
server {
location / {
alias /media/storage/dir/;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
}
}
Password protecion
Add user bob to .htpasswd file using this command:
sudo sh -c "echo -n 'bob:' >> /etc/nginx/.htpasswd"
Add an encrypted password for the username:
sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"
Remember to set correct permissions:
sudo chown www-data:www-data /etc/nginx/.htpasswd
sudo chown 600 /etc/nginx/.htpasswd
Add this to ngnix config:
#...
server {
location / {
alias /media/storage/dir/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
# disable_symlinks off; # ???
}
}
Autoindex for all locations in given section
#...
server {
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
location / {
alias /media/storage/;
}
location /foo {
alias /media/storage/foo;
}
location /bar {
alias /media/storage/test;
}
}