Перейти до основного вмісту

Публікації

Показано дописи з міткою "nginx"

Nginx як reverse proxy для Apache

Коли потрібно, щоб частина вебсервісів працювала на nginx, а частина на apache, можна налаштувати nginx, як проксі, котрий прийматиме запрос та перемикати потоки. Тобто деякі вебсервіси можуть працювати через nginx, тому що він швидший, а частина через apache. Причому для HTTPS з використанням сертифікатів, отриманих через certbot, можна вказати порти 443 та 8443 відповідно, а шлях на сертифікат та ключі треба вказати у налаштуваннях як nginx так і apache. Головні налаштування, наприклад для nginx у /etc/nginx/sites-available/domain server { server_name domain.ua; listen 80; if ($host = domain.ua) {      return 301 https://$host$request_uri; } # managed by Certbot } server {      server_name domain.ua;      listen 443 ssl http2;      ssl_certificate /etc/letsencrypt/live/domain.ua/fullchain.pem; # managed by Certbot      ssl_certificate_key /etc/letsencrypt/live/domain.ua/privkey.pem; # managed by Certbot location / {      proxy_pass htt

Налаштування nginx для Wordpress

    # Upstream to abstract backend connection(s) for php upstream php { server unix:/tmp/php-cgi.socket ; server 127.0.0.1 : 9000 ; } server { ## Your website name goes here. server_name domain.tld ; ## Your only path reference. root /var/www/wordpress ; ## This should be in your http block and if it is, it's not needed here. index index.php ; location = /favicon.ico { log_not_found off ; access_log off ; } location = /robots.txt { allow all ; log_not_found off ; access_log off ; } location / { # This is cool because no php is touched for static content. # include the "?$args" part so non-default permalinks doesn't break when using query string try_files $uri $uri/ /index.php? $args ;

Не відкривається phpldapadmin в nginx

Завантажено та встановлено і налаштовано nginx для відкривання phpldapadmin. Завантаження і встановлення описано тут https://kifarunix.com/install-phpldapadmin-on-debian-10-debian-1 Phpldapadmin налаштовано не як субдомен, а як тека, для цього у теці /template налаштувань nginx створено ldapadmin.tmpl наступного змісту # Settings for phpLdapAdmin. # Redirect URI `/ldapadmin` to `/ldapadmin/`. location = /ldapadmin { return 301 /ldapadmin/; } location ~ ^/ldapadmin/(.*\.php)$ { include /etc/nginx/templates/hsts.tmpl; include /etc/nginx/templates/fastcgi_php.tmpl; fastcgi_param SCRIPT_FILENAME /usr/share/phpldapadmin/htdocs/$fastcgi_script_name; } location ~ ^/ldapadmin/(.*) { alias /usr/share/phpldapadmin/htdocs/$1; index index.php; } Але після перезапуску nginx у браузері отримуємо тільки повідомлення "No input file specified". У журналі помилок nginx отримуємо "FastCGI sent in stderr: "Unable to open primary script: /usr/share/nginx/html/ldapadmin/index.php (No su

Nginx не зображує php файл, а завантажує

У новій реалізації Nginx  на Debian 11 , після встановлення сайту з Wordpress, файли php у клієнта завантажуюються, а не зображуються. Проблема в тому, що Nginx не знає як обробляти файли php. Виявилось, що потрібно вказати виклик  fastcgi_pass  не через сокет, а через порт. Як видно з файлу /etc/php/7.4/fpm/pool.d/www.conf там вказано що listen = 127.0.0.1:9000 А за умовчанням у налаштуваннях сайту, наприклад у /etc/nginx/sites-available/default вказано відкривати через сокет  fastcgi_pass unix:/var/run/php5-fpm.sock; Тому у файлі на кшталт такого, необхідно вибрати потрібну строку fastcgi_pass location ~ \.php$ {   include snippets/fastcgi-php.conf;   # With php7.4-cgi alone:   # fastcgi_pass 127.0.0.1:9000;   # With php5-fpm:   fastcgi_pass unix:/var/run/php7.4-fpm.sock;   } Пораду знайшов тут https://stackoverflow.com/questions/25591040/nginx-serves-php-files-as-downloads-instead-of-executing-them Ще про налаштування php-fpm + nginx знайшов тут https://habr.com/ru/post/454816/

Оновлення сертифікатів letsencrypt в Ubuntu 20.04

Для роботи ssl з nginx та odoo використувуються безкоштовні сертифікти letsencrypt. Але якщо викликати просто команду sudo certbot renew то виникає помилка, що невідоме ім'я сервера. Якщо вказати ім'я домена sudo certbot certonly -d domain-name.com то виникає помилка, що невідомий сервер та не можливо отримати доступ через порт 80. Найкраще зупинити сервер nginx, та вказати   sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d domain-name.com Потім перевірити, що в конфігурації nginx вказано правильно шлях до теки куди certbot виклав оновлені сертифікати (/etc/certbot/live). А потім знову запустити nginx. Ще можна спробувати встановити додатки certbot до nginx apt install python3-certbot-nginx А потім запускати certbot для оновлення сертифікатів одразу для nginx sudo certbot --nginx --agree-tos --preferred-challenges http -d domain-name.com   Пораду знайшов тут https://serverspace.io/support/help/how-to-get-lets-encrypt-ssl-on-ubuntu/

Налаштування https та LiveChat для Odoo.

Система Odoo після встановлення працює через порт 8069. Для того щоб працювати через https, потрібно встановити nginx и налаштувати odoo та nginx. Згідно рекомендацій з офіційного сайту https://www.odoo.com/documentation/14.0/administration/install/deploy.html (на цій сторінці взагалі багато корисної інформації) Потрібно в /etc/odoo.conf вказати: proxy_mode = True А в /etc/nginx/sites-enabled/odoo.conf вказати: #odoo server  upstream odoo {  server 127.0.0.1:8069;  }  upstream odoochat {  server 127.0.0.1:8072;  }  # http -> https  server {  listen 80;  server_name odoo.mycompany.com;  rewrite ^(.*) https://$host$1 permanent;  }  server {  listen 443;  server_name odoo.mycompany.com; proxy_read_timeout 720s;  proxy_connect_timeout 720s;  proxy_send_timeout 720s;  # Add Headers for odoo proxy mode  proxy_set_header X-Forwarded-Host $host;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  proxy_set_header X-Forwarded-Proto $scheme;  proxy_set_header X-Real-IP $remote_addr

Встановлення Odoo 13 на CentOs 8. Налаштування https для Odoo 13.

На сайті системи ERP Odoo пропонується кілька способів встановлення- з першоджерел, зібрані пакети rpm, deb. https://www.odoo.com/documentation/13.0/setup/install.html#setup-install-packaged Після спроби встановлення з rpm, виявилось, що дуже багато пакетів відсутні, а встановлювати з невідомих джерел не дуже корисно. Тому вирішено спробувати варіант встановлення з першоджерел, але згідно опису з сайту linuxize https://linuxize.com/post/how-to-install-odoo-13-on-centos-8/ У статті описано встановлення усіх залежностей, БД і тощо. Але стандартно сервер Odoo 13 працює тільки через http. А для введення логіну та паролю краще використовувати https. Тому для https пропонується використовувати nginx як reverse proxy. Налаштування добре описано у https://linuxize.com/post/configure-odoo-with-nginx-as-a-reverse-proxy/ Ще непогано у https://www.odoo.com/documentation/13.0/setup/deploy.html#https або у https://medium.com/@othmane.ghandi/running-odoo-in-https-using-nginx-certbot-90ef2f3e5ccb Але