fusionpbx.conf 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. server {
  2. listen 127.0.0.1:80;
  3. server_name 127.0.0.1;
  4. #set the log files
  5. error_log /var/log/nginx/error.log info;
  6. access_log /var/log/nginx/access.log;
  7. #set the default index files
  8. location / {
  9. root /usr/local/www/fusionpbx;
  10. index index.php index.html index.htm;
  11. }
  12. #nginx settings
  13. client_max_body_size 128M;
  14. client_body_buffer_size 128k;
  15. #http error handling
  16. error_page 500 502 503 504 /50x.html;
  17. location = /50x.html {
  18. root /usr/local/www/nginx-dist;
  19. }
  20. #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  21. location ~ \.php$ {
  22. fastcgi_pass 127.0.0.1:9000;
  23. fastcgi_index index.php;
  24. fastcgi_param SCRIPT_FILENAME /usr/local/www/fusionpbx$fastcgi_script_name;
  25. include fastcgi_params;
  26. }
  27. #disable viewing of .htaccess, htpassword, .db and .git
  28. location ~ /\.htaccess {
  29. deny all;
  30. }
  31. location ~ .htpassword {
  32. deny all;
  33. }
  34. location ~^.+.(db)$ {
  35. deny all;
  36. }
  37. location ~ /\.git {
  38. deny all;
  39. }
  40. location ~ /\. {
  41. deny all;
  42. }
  43. }
  44. server {
  45. listen 80;
  46. server_name fusionpbx;
  47. #set the log files
  48. error_log /var/log/nginx/error.log info;
  49. access_log /var/log/nginx/access.log;
  50. #redirect letsencrypt to dehydrated
  51. location ^~ /.well-known/acme-challenge {
  52. default_type "text/plain";
  53. auth_basic "off";
  54. alias /usr/local/www/dehydrated;
  55. }
  56. #set the default index files
  57. location / {
  58. root /usr/local/www/fusionpbx;
  59. index index.php index.html index.htm;
  60. }
  61. #rewrite rule - send to https with an exception for provisioning
  62. if ($uri !~* ^.*(provision|xml_cdr).*$) {
  63. rewrite ^(.*) https://$host$1 permanent;
  64. break;
  65. }
  66. #rewrite rule - REST api
  67. if ($uri ~* ^.*/api/.*$) {
  68. rewrite ^(.*)/api/(.*)$ $1/api/index.php?rewrite_uri=$2 last;
  69. break;
  70. }
  71. #algo
  72. rewrite "^.*/provision/algom([A-Fa-f0-9]{12})\.conf" /app/provision/?mac=$1&file=algom%7b%24mac%7d.conf last;
  73. #avaya
  74. rewrite "^.*/provision/J100Supgrade.txt" /resources/templates/provision/avaya/J100Supgrade.txt last;
  75. rewrite "^.*/provision/([A-Fa-f0-9]{12}).txt?$" /app/provision/index.php?mac=$1 last;
  76. #mitel
  77. rewrite "^.*/provision/MN_([A-Fa-f0-9]{12})\.cfg" /app/provision/index.php?mac=$1&file=MN_%7b%24mac%7d.cfg last;
  78. rewrite "^.*/provision/MN_Generic.cfg" /app/provision/index.php?mac=08000f000000&file=MN_Generic.cfg last;
  79. #grandstream
  80. rewrite "^.*/provision/cfg([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/?mac=$1;
  81. rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
  82. #grandstream-wave softphone by ext because Android doesn't pass MAC.
  83. rewrite "^.*/provision/([0-9]{5})/cfg([A-Fa-f0-9]{12}).xml$" /app/provision/?ext=$1;
  84. #aastra
  85. rewrite "^.*/provision/aastra.cfg$" /app/provision/?mac=$1&file=aastra.cfg;
  86. #rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(cfg))?$" /app/provision/?mac=$1 last;
  87. #yealink common
  88. rewrite "^.*/provision/(y[0-9]{12})(\.cfg)?$" /app/provision/index.php?file=$1.cfg;
  89. #yealink mac
  90. rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/index.php?mac=$1 last;
  91. #polycom
  92. rewrite "^.*/provision/000000000000.cfg$" "/app/provision/?mac=$1&file={%24mac}.cfg";
  93. #rewrite "^.*/provision/sip_330(\.(ld))$" /includes/firmware/sip_330.$2;
  94. rewrite "^.*/provision/features.cfg$" /app/provision/?mac=$1&file=features.cfg;
  95. rewrite "^.*/provision/([A-Fa-f0-9]{12})-sip.cfg$" /app/provision/?mac=$1&file=sip.cfg;
  96. rewrite "^.*/provision/([A-Fa-f0-9]{12})-phone.cfg$" /app/provision/?mac=$1;
  97. rewrite "^.*/provision/([A-Fa-f0-9]{12})-registration.cfg$" "/app/provision/?mac=$1&file={%24mac}-registration.cfg";
  98. rewrite "^.*/provision/([A-Fa-f0-9]{12})-directory.xml$" "/app/provision/?mac=$1&file={%24mac}-directory.xml";
  99. #cisco
  100. rewrite "^.*/provision/file/(.*\.(xml|cfg))" /app/provision/?file=$1 last;
  101. #escene
  102. rewrite "^.*/provision/([0-9]{1,11})_Extern.xml$" "/app/provision/?ext=$1&file={%24mac}_extern.xml" last;
  103. rewrite "^.*/provision/([0-9]{1,11})_Phonebook.xml$" "/app/provision/?ext=$1&file={%24mac}_phonebook.xml" last;
  104. #vtech
  105. rewrite "^.*/provision/VCS754_([A-Fa-f0-9]{12})\.cfg$" /app/provision/?mac=$1;
  106. rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
  107. #digium
  108. rewrite "^.*/provision/([A-Fa-f0-9]{12})-contacts\.cfg$" "/app/provision/?mac=$1&file={%24mac}-contacts.cfg";
  109. rewrite "^.*/provision/([A-Fa-f0-9]{12})-smartblf\.cfg$" "/app/provision/?mac=$1&file={%24mac}-smartblf.cfg";
  110. #Snom
  111. rewrite "^.*/provision/.*-([A-Fa-f0-9]{12})\.?(cfg|htm)?$" /app/provision/index.php?mac=$1;
  112. rewrite "^.*/provision/C520-WiMi_([A-Fa-f0-9]{12})\.cfg$" /app/provision/index.php?mac=$1;
  113. rewrite "^.*/provision/([A-Fa-f0-9]{12})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
  114. #nginx settings
  115. client_max_body_size 128M;
  116. client_body_buffer_size 128k;
  117. #http error handling
  118. error_page 500 502 503 504 /50x.html;
  119. location = /50x.html {
  120. root /usr/local/www/nginx-dist;
  121. }
  122. #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  123. location ~ \.php$ {
  124. fastcgi_pass 127.0.0.1:9000;
  125. fastcgi_index index.php;
  126. fastcgi_param SCRIPT_FILENAME /usr/local/www/fusionpbx$fastcgi_script_name;
  127. include fastcgi_params;
  128. }
  129. #disable viewing of .htaccess, htpassword, .db, and .git
  130. location ~ /\.htaccess {
  131. deny all;
  132. }
  133. location ~ .htpassword {
  134. deny all;
  135. }
  136. location ~^.+.(db)$ {
  137. deny all;
  138. }
  139. location ~ /\.git {
  140. deny all;
  141. }
  142. location ~ /\. {
  143. deny all;
  144. }
  145. }
  146. server {
  147. listen 443 ssl;
  148. server_name fusionpbx;
  149. #set tls configuration
  150. ssl_certificate /usr/local/etc/nginx/server.crt;
  151. ssl_certificate_key /usr/local/etc/nginx/server.key;
  152. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  153. ssl_ciphers HIGH:!ADH:!MD5:!aNULL;
  154. #set the log files
  155. error_log /var/log/nginx/error.log info;
  156. access_log /var/log/nginx/access.log;
  157. #redirect letsencrypt to dehydrated
  158. location ^~ /.well-known/acme-challenge {
  159. default_type "text/plain";
  160. auth_basic "off";
  161. alias /usr/local/www/dehydrated;
  162. }
  163. #set the default index files
  164. location / {
  165. root /usr/local/www/fusionpbx;
  166. index index.php index.html index.htm;
  167. }
  168. #rewrite rule - send to https with an exception for provisioning
  169. #if ($uri !~* ^.*provision.*$) {
  170. # rewrite ^(.*) https://$host$1 permanent;
  171. # break;
  172. #}
  173. #rewrite rule - REST api
  174. if ($uri ~* ^.*/api/.*$) {
  175. rewrite ^(.*)/api/(.*)$ $1/api/index.php?rewrite_uri=$2 last;
  176. break;
  177. }
  178. #message media
  179. rewrite "^/app/messages/media/(.*)/(.*)" /app/messages/message_media.php?id=$1&action=download last;
  180. #algo
  181. rewrite "^.*/provision/algom([A-Fa-f0-9]{12})\.conf" /app/provision/?mac=$1&file=algom%7b%24mac%7d.conf last;
  182. #avaya
  183. rewrite "^.*/provision/J100Supgrade.txt" /resources/templates/provision/avaya/J100Supgrade.txt last;
  184. rewrite "^.*/provision/([A-Fa-f0-9]{12}).txt?$" /app/provision/index.php?mac=$1 last;
  185. #mitel
  186. rewrite "^.*/provision/MN_([A-Fa-f0-9]{12})\.cfg" /app/provision/index.php?mac=$1&file=MN_%7b%24mac%7d.cfg last;
  187. rewrite "^.*/provision/MN_Generic.cfg" /app/provision/index.php?mac=08000f000000&file=MN_Generic.cfg last;
  188. #grandstream
  189. rewrite "^.*/provision/cfg([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/?mac=$1;
  190. rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
  191. #grandstream-wave softphone by ext because Android doesn't pass MAC.
  192. rewrite "^.*/provision/([0-9]{5})/cfg([A-Fa-f0-9]{12}).xml$" /app/provision/?ext=$1;
  193. #aastra
  194. rewrite "^.*/provision/aastra.cfg$" /app/provision/?mac=$1&file=aastra.cfg;
  195. #rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(cfg))?$" /app/provision/?mac=$1 last;
  196. #yealink common
  197. rewrite "^.*/provision/(y[0-9]{12})(\.cfg)?$" /app/provision/index.php?file=$1.cfg;
  198. #yealink mac
  199. rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/index.php?mac=$1 last;
  200. #polycom
  201. rewrite "^.*/provision/000000000000.cfg$" "/app/provision/?mac=$1&file={%24mac}.cfg";
  202. #rewrite "^.*/provision/sip_330(\.(ld))$" /includes/firmware/sip_330.$2;
  203. rewrite "^.*/provision/features.cfg$" /app/provision/?mac=$1&file=features.cfg;
  204. rewrite "^.*/provision/([A-Fa-f0-9]{12})-sip.cfg$" /app/provision/?mac=$1&file=sip.cfg;
  205. rewrite "^.*/provision/([A-Fa-f0-9]{12})-phone.cfg$" /app/provision/?mac=$1;
  206. rewrite "^.*/provision/([A-Fa-f0-9]{12})-registration.cfg$" "/app/provision/?mac=$1&file={%24mac}-registration.cfg";
  207. rewrite "^.*/provision/([A-Fa-f0-9]{12})-directory.xml$" "/app/provision/?mac=$1&file={%24mac}-directory.xml";
  208. #cisco
  209. rewrite "^.*/provision/file/(.*\.(xml|cfg))" /app/provision/?file=$1 last;
  210. #escene
  211. rewrite "^.*/provision/([0-9]{1,11})_Extern.xml$" "/app/provision/?ext=$1&file={%24mac}_extern.xml" last;
  212. rewrite "^.*/provision/([0-9]{1,11})_Phonebook.xml$" "/app/provision/?ext=$1&file={%24mac}_phonebook.xml" last;
  213. #vtech
  214. rewrite "^.*/provision/VCS754_([A-Fa-f0-9]{12})\.cfg$" /app/provision/?mac=$1;
  215. rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
  216. #digium
  217. rewrite "^.*/provision/([A-Fa-f0-9]{12})-contacts\.cfg$" "/app/provision/?mac=$1&file={%24mac}-contacts.cfg";
  218. rewrite "^.*/provision/([A-Fa-f0-9]{12})-smartblf\.cfg$" "/app/provision/?mac=$1&file={%24mac}-smartblf.cfg";
  219. #Snom
  220. rewrite "^.*/provision/.*-([A-Fa-f0-9]{12})\.?(cfg|htm)?$" /app/provision/index.php?mac=$1;
  221. rewrite "^.*/provision/C520-WiMi_([A-Fa-f0-9]{12})\.cfg$" /app/provision/index.php?mac=$1;
  222. rewrite "^.*/provision/([A-Fa-f0-9]{12})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
  223. #nginx settings
  224. client_max_body_size 128M;
  225. client_body_buffer_size 128k;
  226. #http error handling
  227. error_page 500 502 503 504 /50x.html;
  228. location = /50x.html {
  229. root /usr/local/www/nginx-dist;
  230. }
  231. #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  232. location ~ \.php$ {
  233. fastcgi_pass 127.0.0.1:9000;
  234. fastcgi_index index.php;
  235. fastcgi_param SCRIPT_FILENAME /usr/local/www/fusionpbx$fastcgi_script_name;
  236. include fastcgi_params;
  237. }
  238. #disable viewing of .htaccess, htpassword, .db, and .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 ~ /\. {
  252. deny all;
  253. }
  254. }