Ответы пользователя по тегу Apache HTTP Server
  • На VPS в access.log apache вместо IP посетителя записывается внешний IP самой VPS. Как записывать нужный IP?

    Проблема связана с тем что у вас на сервере используется apache+nginx связка
    в результате обращение к апачь идет от nginx собственно он его логи и пишет.
    Для устранения данной проблемы используется mod-rpaf
    Суть его в том что он подставляет в логи вместо айпи прокси, реальные айпи посетителей nginx.
    Есть еще пара тем которые он якобы делает но это хрень, поскольку все маны в интернете написаны с ошибкой и подмена протокола по факту не работает, но к сути это не относится.
    Все что вам нужно это зайти в его конфиг и правильно выставить значение. RPAFproxy_ips
    Ответ написан
    Комментировать
  • Какой правильный синтаксис If-выражения в apache2?

    не придумайте велосипед на пустом месте.
    Конфиги генерить нужно под каждый сайт. Следовательно и всю эту шляпу тоже.
    Все ваши иф и должны быть в шаблоне генератора.
    Ответ написан
  • Как настроить связки nginx + apache и nginx + php-fpm на одном сервере?

    shambler81
    @shambler81 Куратор тега Linux
    у вас три файла
    1. общий который для неразобраных запросов по сути это мусорка, первый сайт на обычно висит на нем, но это неправильно поскольку это какраз таки ВСЕ домены то есть именно то что ведет здрасти вы на сервере.
    2. У вас два конфиа в которых прописаны явно хосты и в одном из них указан прокси, а во второ FPM
    3. У вас ssl выданы для каждого сайта, нельзя выдать ssl одному сайту ( специйфика подключения по SSL) если он есть хоть у одного сайта он появляется и у остальных. НО это отдельная тем.
    И так
    1. Удалите дефолтный конфиг он вам не нужен
    2. удалите дефолтный для ssl поскольку он будет только мешать
    3. выдайте клюии на каждый сайт
    4. Укажите проксми в одном файле
    5. Укажите FPM в другом файле
    6. если у вас конфиги для ssl вынесены в отдельные файлы
    например
    site1.ru_ssl.conf - то в них тоже измените все настройки.
    И все у вас будет работать
    Ответ написан
  • Почему файл создается в /home/admin/, а не в /home/admin/domains/mydomain.com/public_html/?

    Все совершенно правильно
    крон работает от root и соответственно у рута совершенно другая домашняя директория, переменные среды, версия php и тд и тп.
    Решение
    1. crontab -e -uИМЯ ЮЗЕРА - но тут есть еще и тонкоссти с пхп поскольку они не совсем те что прописаны в конфигах apache nginx посколкьу вы опять же не указали какой php.ini файл инициализировать и какую версию какое представление пхп.
    2. но есть куда более простой способ
    это кроном и тут уже без разницы под каким юзермо поскольку мы будем скачивать с сайта страничку, а это означает что переменные среды загрузятяс с сайта, все константы и пхп будет от сайта, движок сайта и тд и тп.
    Короче вот
    50 15 * * /usr/bin/wget -t 1 -O - 'http://site.ua/script.php?p1=a&p2=b'

    или
    50 15 * * /usr/bin/wget -O /dev/null -q http://test.ru/test/index.php

    в общем вы уловили мысль
    таки образом вы просто запустите на сайте php файл как обычный клиент.
    Манов в интернете тьма
    https://www.ukraine.com.ua/faq/kak-zapustit-cron-c...
    Ответ написан
    1 комментарий
  • Как дополнить правило, чтобы оно применилось для доменов 3-го уровня?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{HTTP_HOST} ^www\.(.+)\.(.+)$
    RewriteRule (.*) https://%1/$1 [R=301,L]
    это будет для только третьего уровня

    Можно попробовать даже обьеденить
    RewriteCond %{HTTP_HOST} ^www(\.(.+)){1,2}$
    RewriteRule (.*) https://%1/$1 [R=301,L]
    Но судя по регулярке там и так должно было работать.
    Ответ написан
    Комментировать
  • Непонятны версии настроек Open Server?

    PHPPgAdmin 7 входит в состав OpenServer

    5e05eadec96ce343689769.png
    Ответ написан
    Комментировать
  • Как запретить доступ к любым Alias, расположенным в общей конфигурации сервера?

    Добавьте редирект в конфиг phpmyadmin

    /etc/apace2/conf-enabled/phpmyadmin.conf
    RewriteEngine on
     RewriteCond %{HTTP_HOST}   ^(www\.|)domain\.ru$ [NC]
      RewriteRule   ^/(.*)$ https://domain.ru/404.html/$1  [R=301,L]

    Но правельней было бы в генератор конфигов добавить для каждого сайта phpmyadmin
    а для конкретного его отключить
    но это нужно смотреть что у вас за реализация.
    Ответ написан
    Комментировать
  • Как сменить document_root apache с /var/www/html на /var/www/test/html/public?

    вам что нужно изменить doceument root для дополнитлеьного сайта или для default?
    Ответ написан
  • Почему происходит перенаправление?

    shambler81
    @shambler81 Куратор тега htaccess
    1. попробуйте php proxy вместо айфрейма str_replace поможет вам бороться с минусами iframe ( если это вообще нужно), опять же не будет 301
    но мне не очень понятно зачем свой же контент в айфрейме отдавать?
    дайте реально саму задачу
    Ответ написан
  • Нужен mysql->http(s) модуль под apache. Где найти?

    Если бы вы написали более подробно задачу то вам бы и ответили более подробно, однако исходя из
    наверное вам подойдет что-то подобное.
    на текущий момент есть самый стандартный способ это использовать PHP
    он самый разумный и самый просто, для этого нет необходимости крутить велосипед.

    Опишите пожалуйста более подробно задачу и почему нельзя использовать обычные методы а искать мифический модуль на апач?
    Ответ написан
  • Как перенаправить http://site.com на http://site.ru/en/ используя .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^site.com [NC]
    RewriteCond %{REQUEST_URI} !^/en(\/|$
    RewriteRule ^(.*) https://site.ru/en/$1 [R,L=301]
    Ответ написан
    Комментировать
  • Проксирование rewrite_mod в apache?

    mod_proxy по умолчанию не стоит его нужно доставлять
    А прокси nginx и должен этим заниматься смысл выдумывать велосипед.
    ну или на крайняк php proxy тоже знатно работает.
    Ответ написан
  • Поможете сделать редирект в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Разместить в самом начале файла ( это имеет значение)
    RewriteBase /
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^domain\.ru$
    RewriteRule ^5/domain\.ru/(.+)$ http://domain.ru/$1 [L,R=301]
    Ответ написан
    Комментировать
  • Как сделать кэширование GET запросов на Apache2?

    shambler81
    @shambler81 Куратор тега Linux
    простите но мне кажется вы дали мало вводных,
    для чего
    Движок
    версии
    Ответ написан
    Комментировать
  • Apache в качестве обратного прокси, правильно ли делать чтобы прокси работал по https, а внутренние сервера по http?

    shambler81
    @shambler81 Куратор тега Linux
    нет не правильно, а главное 100% манов в интернете говорят о обратном.
    Мативируя тем что протокол можно подменить, однако это при детальном рассмотрение полная чуш.
    Поскольку.
    1. httaccess ничего не знает о том что он за прокси и может быть зацикливание с редиректами
    2. ошибки в http reffer типа syte.ru:443 или https://site.ru:80
    3 js +ajax + сессии все-равно ничего не знают о протоколе на внешке и будут работать некоректно если в них есть првоерки https ( а такое бывает)
    в общем и целом работать будет, но для 100% совместимости естественно лучше использвать бэк
    http-http
    https - https
    в таком случае точно все будет работать как положено, без всяких костылей.
    да и делать защищеное соединение должно быть защищеное везде
    Ответ написан
  • Почему зависает сайт при свободной памяти и процессоре?

    iotop -oka и подожди минут 10
    так же вклчи в вм мониторинг nagios
    Ответ написан
  • Как обрабатывать ssl и на nginx и на apach?

    nginx      80 --> 82     apache  
    nginx+ssl  443 -> 4443 apache +ssl


    то что пишут в мануалах в интернетах там 100% неправельная ифа поскольку
    предлагают такой вариант
    nginx      80 --> 82     apache  
    nginx+ssl  443 -> 80 apache + эмулировать что это https

    и даже если это частично можно сделать подменив в рефери протокол, но вот тот же ajax на бэке о этом точно не узнает, как и .htaccess и тд и тп , так что это шляпа изначальная.
    делай полноценный фронт и бэк с одними и теми же ключами, дабы это работает без проблем.
    Могуд дать рабочие примеры конфигов.

    конфиг nginx
    конфиг apache
    Ответ написан
    Комментировать
  • Плюсы и минусы двух связок для php7 - nginx/apache/mod_php vs nginx/php-fpm?

    nginx+apache+fpm - все работает великолепно.
    Ответ написан
    Комментировать
  • Как настроить правильно nginx front end apache2 ( Drupal 8, Moodle)?

    Вот тебе конфиг рабочий для 80 порта тупо ударишь лишнее.
    Апачь при этом может быть практически любой поскольку главное прокся а что там сзади уже не важно.
    Так же не нужно использовать домен в бэке хватит и 127.0.0.1 поскольку там все-равно по заголовкам будет разбор а не по домену в проксе.
    реальный nginx
    server {
    
    ######################################################################
    ## Server configuration 
    ######################################################################
    	listen *:443 ssl http2;
    		server_name 5job.ru www.5job.ru   ;
    	root /var/www/5job.ru/web;
    ######################################################################
    ## Enable gzip for proxied requests and static files
    ######################################################################
        # Enable gzip for proxied requests and static files
        gzip on;
        gzip_proxied any;
        gzip_vary on;
        gzip_http_version 1.1;
        gzip_types application/javascript application/json text/css text/xml;
        gzip_comp_level 4;
    
    ######################################################################
    ## SSL configuration
    ######################################################################
    # recommended but not manditory directive
    # leave commented out unless you know what it is doing
    #more_set_headers 'Strict-Transport-Security: max-age=15768000';
    	ssl on;
    	ssl_session_cache  shared:SSL:10m;
    	ssl_session_timeout 1h;
    	ssl_protocols TLSv1.2 TLSv1.1;
    	add_header Strict-Transport-Security "max-age=15768000" always;
    	ssl_stapling on;
    	ssl_stapling_verify on;
    	ssl_prefer_server_ciphers on;
    	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK;
    	ssl_certificate /var/www/clients/client26/web28/ssl/5job.ru-le.crt;
    	ssl_certificate_key /var/www/clients/client26/web28/ssl/5job.ru-le.key;
    	ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ######################################################################
    ## Log configuration
    ######################################################################
    #Все логи отключены  
            error_log /dev/null crit;
            access_log off;
    ######################################################################
    ## 555 Еrror requires password password 
    ######################################################################
    # Дев сайты закрыты htpass  login:dev pass:dev (второй кусок ниже)
    	error_page 555 = @pass;
    	location @pass {
    		auth_basic	"Unauthorized";
    		auth_basic_user_file	/var/www/dev_htpasswd;
    		proxy_pass		https://127.0.0.1:4443;
    		proxy_set_header 	Host		$host;
    		proxy_set_header	X-Real-IP	$remote_addr;
    		proxy_set_header	X-Forwarded-For	$proxy_add_x_forwarded_for;
    		proxy_set_header	HTTPS		YES;
    		}
    ######################################################################
    ## Errors send to apache2
    ######################################################################
    # у апача своих алиасов куча,  а так же некоторая статика отдается 
    # средствамси php, по этому все ошибки обрабатывать только apache2
    	error_page 401 403 404 405 500 502 503 = @fallback;
    	location @fallback {
    		proxy_pass		https://127.0.0.1:4443;
    		proxy_set_header 	Host		$host;
    		proxy_set_header	X-Real-IP	$remote_addr;
    		proxy_set_header	X-Forwarded-For	$proxy_add_x_forwarded_for;
    		proxy_set_header	HTTPS		YES;
    		}
    
    ######################################################################
    ## Locations configuration
    ######################################################################
    #Отключаем логирование ошибок No such file or directory
    ## Disable .htaccess files
    
    	location ~ /\.ht {
    		deny all;
    
    		access_log off;
    		log_not_found off;
    	}
    	##
    	location = /favicon.ico {
    		log_not_found off;
    		access_log off;
    	}
    	##
    	location = /robots.txt {
    		allow all;
    		log_not_found off;
    		access_log off;
    	}
    	##
    ######################################################################
    # сервисы  на сайте phpmyadmin почта и letxencrypt
    	location /phpmyadmin/ {
    		deny all;
    		# поставить пароль на phpmyadmin
    		return 555;
    		root  /usr/share/phpmyadmin/;
    	}
    	##
    	location /webmail/ {
    		rewrite ^/(.*)$ https://$http_host:8080/$1 permanent;
    	}
    	# letsencrypt 
    	 location /.well-known/acme-challenge/ { 
    	 	alias /usr/local/ispconfig/interface/acme/;
    	 	default_type text/plain;
    
    	 }
    # static content 
    # Отдаем статику напрямую с nginx
    	location ~* ^.+\.(jpg|jpeg|svg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
    		root  /var/www/5job.ru/web;
    		access_log off;
    		expires 30d;
    		gzip_static on;
    	}
    
    # default location
    	location / {
    		index index.php index.html index.htm;
    		proxy_pass		https://127.0.0.1:4443;
    		proxy_set_header 	Host		$host;
    		proxy_set_header	X-Real-IP	$remote_addr;
    		proxy_set_header	X-Forwarded-For	$proxy_add_x_forwarded_for;
    		proxy_set_header	HTTPS		YES;
    		######################################################################
    		## Dev site Protection Requests in location /
    		######################################################################
    		# Дабы дев сайты не индексировались поисковиками, принудительно
    		# Ставим пароли на них,  все что начинается с dev,old. или домен ks03
    			if ($http_host ~* "^(dev|old|www.old|www.dev)\..*\..{2,8}$"){
    		                return 555;
    		                }
    		                if ($http_host ~* "^.*\.ks03\.ru$"){
    		                return 555;
    		                }
    		            
    				proxy_set_header X-Forwarded-Proto https;
    				include /etc/nginx/locations.d/*.conf;
    		}
    }


    А еще лучше поставь веб морду дабы они есть вналичие
    brainycp
    vestacp
    ispconfig3
    bitrix-vm ( морда консольная)
    Ответ написан
    Комментировать