Fork of FusionPBX but with LDAP kinda working
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

305 lines
10 KiB

  1. server {
  2. listen 127.0.0.1:80;
  3. server_name 127.0.0.1;
  4. access_log /var/log/nginx/access.log;
  5. error_log /var/log/nginx/error.log;
  6. client_max_body_size 80M;
  7. client_body_buffer_size 128k;
  8. location / {
  9. root /var/www/fusionpbx;
  10. index index.php;
  11. }
  12. location ~ \.php$ {
  13. fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
  14. #fastcgi_pass 127.0.0.1:9000;
  15. fastcgi_index index.php;
  16. include fastcgi_params;
  17. fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
  18. }
  19. # Allow the upgrade routines to run longer than normal
  20. location = /core/upgrade/index.php {
  21. fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
  22. #fastcgi_pass 127.0.0.1:9000;
  23. fastcgi_index index.php;
  24. include fastcgi_params;
  25. fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
  26. fastcgi_read_timeout 15m;
  27. }
  28. # Disable viewing .htaccess & .htpassword & .db & .git
  29. location ~ .htaccess {
  30. deny all;
  31. }
  32. location ~ .htpassword {
  33. deny all;
  34. }
  35. location ~^.+.(db)$ {
  36. deny all;
  37. }
  38. location ~ /\.git {
  39. deny all;
  40. }
  41. location ~ /\.lua {
  42. deny all;
  43. }
  44. location ~ /\. {
  45. deny all;
  46. }
  47. }
  48. server {
  49. listen 80;
  50. server_name fusionpbx;
  51. #redirect letsencrypt to dehydrated
  52. location ^~ /.well-known/acme-challenge {
  53. default_type "text/plain";
  54. auth_basic "off";
  55. alias /var/www/dehydrated;
  56. }
  57. #rewrite rule - send to https with an exception for provisioning
  58. if ($uri !~* ^.*(provision|xml_cdr|firmware).*$) {
  59. rewrite ^(.*) https://$host$1 permanent;
  60. break;
  61. }
  62. #REST api
  63. if ($uri ~* ^.*/api/.*$) {
  64. rewrite ^(.*)/api/(.*)$ $1/api/index.php?rewrite_uri=$2 last;
  65. break;
  66. }
  67. #algo
  68. rewrite "^.*/provision/algom([A-Fa-f0-9]{12})\.conf" /app/provision/?mac=$1&file=algom%7b%24mac%7d.conf last;
  69. #mitel
  70. rewrite "^.*/provision/MN_([A-Fa-f0-9]{12})\.cfg" /app/provision/index.php?mac=$1&file=MN_%7b%24mac%7d.cfg last;
  71. rewrite "^.*/provision/MN_Generic.cfg" /app/provision/index.php?mac=08000f000000&file=MN_Generic.cfg last;
  72. #grandstream
  73. rewrite "^.*/provision/cfg([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/?mac=$1;
  74. rewrite "^.*/provision/([A-Fa-f0-9]{12})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
  75. rewrite "^.*/provision/(phonebook\.xml)?$" /app/provision/index.php?file=$1 last;
  76. #grandstream-wave softphone by ext because Android doesn't pass MAC.
  77. rewrite "^.*/provision/([0-9]{5})/cfg([A-Fa-f0-9]{12}).xml$" /app/provision/?ext=$1;
  78. #aastra
  79. rewrite "^.*/provision/aastra.cfg$" /app/provision/?mac=$1&file=aastra.cfg;
  80. #rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(cfg))?$" /app/provision/?mac=$1 last;
  81. #yealink
  82. #rewrite "^.*/provision/(y[0-9]{12})(\.cfg|\.boot)?$" /app/provision/index.php?file=$1$2;
  83. rewrite "^.*/provision/(y[0-9]{12})(\.cfg)?$" /app/provision/index.php?file=$1.cfg;
  84. rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/index.php?mac=$1 last;
  85. #polycom
  86. rewrite "^.*/provision/000000000000.cfg$" "/app/provision/?mac=$1&file={%24mac}.cfg";
  87. #rewrite "^.*/provision/sip_330(\.(ld))$" /includes/firmware/sip_330.$2;
  88. rewrite "^.*/provision/features.cfg$" /app/provision/?mac=$1&file=features.cfg;
  89. rewrite "^.*/provision/([A-Fa-f0-9]{12})-sip.cfg$" /app/provision/?mac=$1&file=sip.cfg;
  90. rewrite "^.*/provision/([A-Fa-f0-9]{12})-phone.cfg$" /app/provision/?mac=$1;
  91. rewrite "^.*/provision/([A-Fa-f0-9]{12})-registration.cfg$" "/app/provision/?mac=$1&file={%24mac}-registration.cfg";
  92. rewrite "^.*/provision/([A-Fa-f0-9]{12})-directory.xml$" "/app/provision/?mac=$1&file={%24mac}-directory.xml";
  93. #cisco
  94. rewrite "^.*/provision/file/(.*\.(xml|cfg))" /app/provision/?file=$1 last;
  95. rewrite "^.*/provision/directory\.xml$" /app/provision/?file=directory.xml;
  96. #Escene
  97. rewrite "^.*/provision/([0-9]{1,11})_Extern.xml$" "/app/provision/?ext=$1&file={%24mac}_extern.xml" last;
  98. rewrite "^.*/provision/([0-9]{1,11})_Phonebook.xml$" "/app/provision/?ext=$1&file={%24mac}_phonebook.xml" last;
  99. #Vtech
  100. rewrite "^.*/provision/VCS754_([A-Fa-f0-9]{12})\.cfg$" /app/provision/?mac=$1;
  101. rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
  102. #Digium
  103. rewrite "^.*/provision/([A-Fa-f0-9]{12})-contacts\.cfg$" "/app/provision/?mac=$1&file={%24mac}-contacts.cfg";
  104. rewrite "^.*/provision/([A-Fa-f0-9]{12})-smartblf\.cfg$" "/app/provision/?mac=$1&file={%24mac}-smartblf.cfg";
  105. #Snom
  106. rewrite "^.*/provision/-([A-Fa-f0-9]{12})?$" /app/provision/index.php?mac=$1;
  107. access_log /var/log/nginx/access.log;
  108. error_log /var/log/nginx/error.log;
  109. client_max_body_size 80M;
  110. client_body_buffer_size 128k;
  111. location / {
  112. root /var/www/fusionpbx;
  113. index index.php;
  114. }
  115. location ~ \.php$ {
  116. fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
  117. #fastcgi_pass 127.0.0.1:9000;
  118. fastcgi_index index.php;
  119. include fastcgi_params;
  120. fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
  121. }
  122. # Allow the upgrade routines to run longer than normal
  123. location = /core/upgrade/index.php {
  124. fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
  125. #fastcgi_pass 127.0.0.1:9000;
  126. fastcgi_index index.php;
  127. include fastcgi_params;
  128. fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
  129. fastcgi_read_timeout 15m;
  130. }
  131. # Disable viewing .htaccess & .htpassword & .db & .git
  132. location ~ .htaccess {
  133. deny all;
  134. }
  135. location ~ .htpassword {
  136. deny all;
  137. }
  138. location ~^.+.(db)$ {
  139. deny all;
  140. }
  141. location ~ /\.git {
  142. deny all;
  143. }
  144. location ~ /\.lua {
  145. deny all;
  146. }
  147. location ~ /\. {
  148. deny all;
  149. }
  150. }
  151. server {
  152. listen 443 ssl;
  153. #listen 443 ssl http2;
  154. server_name fusionpbx;
  155. ssl_certificate /etc/ssl/certs/nginx.crt;
  156. ssl_certificate_key /etc/ssl/private/nginx.key;
  157. ssl_protocols TLSv1.2 TLSv1.3;
  158. #ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  159. ssl_ciphers DHE-RSA-AES256-SHA:AES256-SHA:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
  160. ssl_session_cache shared:SSL:40m;
  161. ssl_session_timeout 2h;
  162. ssl_session_tickets off;
  163. #redirect letsencrypt to dehydrated
  164. location ^~ /.well-known/acme-challenge {
  165. default_type "text/plain";
  166. auth_basic "off";
  167. alias /var/www/dehydrated;
  168. }
  169. #REST api
  170. if ($uri ~* ^.*/api/.*$) {
  171. rewrite ^(.*)/api/(.*)$ $1/api/index.php?rewrite_uri=$2 last;
  172. break;
  173. }
  174. #message media
  175. rewrite "^/app/messages/media/(.*)/(.*)" /app/messages/message_media.php?id=$1&action=download last;
  176. #algo
  177. rewrite "^.*/provision/algom([A-Fa-f0-9]{12})\.conf" /app/provision/?mac=$1&file=algom%7b%24mac%7d.conf last;
  178. #mitel
  179. rewrite "^.*/provision/MN_([A-Fa-f0-9]{12})\.cfg" /app/provision/index.php?mac=$1&file=MN_%7b%24mac%7d.cfg last;
  180. rewrite "^.*/provision/MN_Generic.cfg" /app/provision/index.php?mac=08000f000000&file=MN_Generic.cfg last;
  181. #grandstream
  182. rewrite "^.*/provision/cfg([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/?mac=$1;
  183. rewrite "^.*/provision/([A-Fa-f0-9]{12})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
  184. rewrite "^.*/provision/(phonebook\.xml)?$" /app/provision/index.php?file=$1 last;
  185. #grandstream-wave softphone by ext because Android doesn't pass MAC.
  186. rewrite "^.*/provision/([0-9]{5})/cfg([A-Fa-f0-9]{12}).xml$" /app/provision/?ext=$1;
  187. #aastra
  188. rewrite "^.*/provision/aastra.cfg$" /app/provision/?mac=$1&file=aastra.cfg;
  189. #rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(cfg))?$" /app/provision/?mac=$1 last;
  190. #yealink
  191. #rewrite "^.*/provision/(y[0-9]{12})(\.cfg|\.boot)?$" /app/provision/index.php?file=$1$2;
  192. rewrite "^.*/provision/(y[0-9]{12})(\.cfg)?$" /app/provision/index.php?file=$1.cfg;
  193. rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/index.php?mac=$1 last;
  194. #polycom
  195. rewrite "^.*/provision/000000000000.cfg$" "/app/provision/?mac=$1&file={%24mac}.cfg";
  196. #rewrite "^.*/provision/sip_330(\.(ld))$" /includes/firmware/sip_330.$2;
  197. rewrite "^.*/provision/features.cfg$" /app/provision/?mac=$1&file=features.cfg;
  198. rewrite "^.*/provision/([A-Fa-f0-9]{12})-sip.cfg$" /app/provision/?mac=$1&file=sip.cfg;
  199. rewrite "^.*/provision/([A-Fa-f0-9]{12})-phone.cfg$" /app/provision/?mac=$1;
  200. rewrite "^.*/provision/([A-Fa-f0-9]{12})-registration.cfg$" "/app/provision/?mac=$1&file={%24mac}-registration.cfg";
  201. rewrite "^.*/provision/([A-Fa-f0-9]{12})-directory.xml$" "/app/provision/?mac=$1&file={%24mac}-directory.xml";
  202. #cisco
  203. rewrite "^.*/provision/file/(.*\.(xml|cfg))" /app/provision/?file=$1 last;
  204. rewrite "^.*/provision/directory\.xml$" /app/provision/?file=directory.xml;
  205. #Escene
  206. rewrite "^.*/provision/([0-9]{1,11})_Extern.xml$" "/app/provision/?ext=$1&file={%24mac}_extern.xml" last;
  207. rewrite "^.*/provision/([0-9]{1,11})_Phonebook.xml$" "/app/provision/?ext=$1&file={%24mac}_phonebook.xml" last;
  208. #Vtech
  209. rewrite "^.*/provision/VCS754_([A-Fa-f0-9]{12})\.cfg$" /app/provision/?mac=$1;
  210. rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
  211. #Digium
  212. rewrite "^.*/provision/([A-Fa-f0-9]{12})-contacts\.cfg$" "/app/provision/?mac=$1&file={%24mac}-contacts.cfg";
  213. rewrite "^.*/provision/([A-Fa-f0-9]{12})-smartblf\.cfg$" "/app/provision/?mac=$1&file={%24mac}-smartblf.cfg";
  214. access_log /var/log/nginx/access.log;
  215. error_log /var/log/nginx/error.log;
  216. client_max_body_size 80M;
  217. client_body_buffer_size 128k;
  218. location / {
  219. root /var/www/fusionpbx;
  220. index index.php;
  221. }
  222. location ~ \.php$ {
  223. fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
  224. #fastcgi_pass 127.0.0.1:9000;
  225. fastcgi_index index.php;
  226. include fastcgi_params;
  227. fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
  228. }
  229. # Allow the upgrade routines to run longer than normal
  230. location = /core/upgrade/index.php {
  231. fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
  232. #fastcgi_pass 127.0.0.1:9000;
  233. fastcgi_index index.php;
  234. include fastcgi_params;
  235. fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
  236. fastcgi_read_timeout 15m;
  237. }
  238. # Disable viewing .htaccess & .htpassword & .db & .git
  239. location ~ .htaccess {
  240. deny all;
  241. }
  242. location ~ .htpassword {
  243. deny all;
  244. }
  245. location ~^.+.(db)$ {
  246. deny all;
  247. }
  248. location ~ /\.git {
  249. deny all;
  250. }
  251. location ~ /\.lua {
  252. deny all;
  253. }
  254. location ~ /\. {
  255. deny all;
  256. }
  257. }