LINUX.ORG.RU
решено ФорумAdmin

CentOS не осилю конфиги

 , , ,


0

2

Итак есть vps на ЦентОС 6.5, Апач 2.2.15, nginx 1.6.2 ISPManager 5.x (зло). На сервере крутится wordpress, нужно перевести его на https. Вопрос по сабжу.

Сами конфиги

nginx

#user 'lor' virtual host 'site.ru' configuration file
server {

        limit_conn perip 15;

	server_name site.ru www.site.ru;
	#rewrite ^ https://$server_name$request_uri? permanent;
	charset off;
	disable_symlinks if_not_owner from=$root_path;
	index index.html index.php;
	root $root_path;
	set $root_path /var/www/lor/data/www/site.ru;
	access_log /var/www/httpd-logs/site.ru.access.log ;
	error_log /var/www/httpd-logs/site.ru.error.log notice;
	include /etc/nginx/vhosts-includes/*.conf;
	location / {
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			expires max;
			try_files $uri $uri/ @fallback;
		}
		location / {
			try_files /does_not_exists @fallback;
		}
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @fallback;
		}
	}
	location @fallback {
		error_log /dev/null crit;
		access_log off  ;
		proxy_pass http://127.0.0.1:8080;
		proxy_redirect http://127.0.0.1:8080 /;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
	}
	ssi on;
	gzip on;
	gzip_comp_level 5;
	gzip_disable "msie6";
	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
	listen 12.34.56.78:80;
}
server {

        limit_conn perip 15;

	server_name site.ru www.site.ru;
	#rewrite ^ https://$server_name$request_uri? permanent;
	charset off;
	disable_symlinks if_not_owner from=$root_path;
	index index.html index.php;
	root $root_path;
	set $root_path /var/www/lor/data/www/site.ru;
	access_log /var/www/httpd-logs/site.ru.access.log ;
	error_log /var/www/httpd-logs/site.ru.error.log notice;
	include /etc/nginx/vhosts-includes/*.conf;
	location / {
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			expires max;
			try_files $uri $uri/ @fallback;
		}
		location / {
			try_files /does_not_exists @fallback;
		}
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @fallback;
		}
	}
	location @fallback {
		error_log /dev/null crit;
		access_log off  ;
		proxy_pass http://127.0.0.1:8080;
		proxy_redirect http://127.0.0.1:8080 /;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
	}
	ssi on;
	gzip on;
	gzip_comp_level 5;
	gzip_disable "msie6";
	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
	listen 12.34.56.78:443;
	ssl on;
	ssl_certificate "/var/www/httpd-cert/lor/www.site.ru.crtca";
	ssl_certificate_key "/var/www/httpd-cert/lor/www.site.ru.key";
}

Apache

#user 'lor' virtual host 'site.ru' configuration file
<VirtualHost 127.0.0.1:8080>
	ServerName site.ru
	AddDefaultCharset off
	DocumentRoot /var/www/lor/data/www/site.ru
	ServerAdmin info@lor.ru
	SuexecUserGroup lor lor
	CustomLog /var/www/httpd-logs/site.ru.access.log combined
	ErrorLog /var/www/httpd-logs/site.ru.error.log
	ScriptAlias /cgi-bin/ /var/www/lor/data/www/site.ru/cgi-bin/
	ServerAlias www.site.ru
	DirectoryIndex index.html index.php
	<FilesMatch "\.ph(p[3-5]?|tml)$">
		SetHandler fcgid-script
		FCGIWrapper /var/www/php-bin-isp-php56/lor/php
	</FilesMatch>
</VirtualHost>
<Directory /var/www/lor/data/www/site.ru>
	Options +ExecCGI +Includes
</Directory>

Проблема в том, что как не крути по https не отдаёт статику nginx.

★★★★★

Последнее исправление: Twissel (всего исправлений: 2)

Ну так скажи вордпрессу, что он работает по https

define('WP_HOME','https://example.com');
define('WP_SITEURL','https://example.com');
Deleted
()
Ответ на: комментарий от Deleted

Та же фигня, не отдает стили и js.

Плюс на админке тогда получается циклический редирект по https.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Хм, попробуй еще вот это добавить куда-нибудь в начало wp-config.php:

$_SERVER['HTTPS'] = 'on';

Костыль, но все же.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

Скажу, что ты туповат - статика nginxу и не должна отдаваться по https с тяжеленного гопача, это лютый оверхед. nginx ее должен сам обслуживать.

svr4
()
Ответ на: комментарий от svr4

В том и проблема, что по https не обслуживает.

Скажу, что ты туповат

Потому и пришел сюда за советом, не капитанствуй.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от svr4

PS: Если ты про то, что вротпресс лепит ссылки, начинающиеся с http - уже выше сказали, что править. Хотя вообще, я бы за абсолютные ссылку со своего сайта с указанием {scheme}:// руки бы вырывал.

svr4
()
Ответ на: комментарий от Twissel

include /etc/nginx/vhosts-includes/*.conf;

А вот там кстати что?

Алсо, ssl on уже лет триста как объявлено deprecated, и зная Сысоева - скорее всего скоро выпилит. Если уже не выпилил.

правильный синтаксис сейчас что-то типа listen 1.2.3.4:443 ssl;

svr4
()
Ответ на: комментарий от Twissel

Я его внимательно читал, у меня сборок нжинкса в 6 и 7 центосях на хостинге - даже если разуться, не хватит пальцев чтобы пересчитать.

Сейчас кстати пилю как раз очередную mainline с aio threads и нужными модулями.

Ладно, это лирика. Физика в том, что если эти конфиги содержат новые секции «server { }» (по названиям вполне вероятно), то нжинкс у тебя даже конфиг в который это заинклужено, прогрузить не сможет.

svr4
()
Ответ на: комментарий от Twissel

Вся ясно.

Это Вам к разработчикам. CMS отдает ссылки в абсолютном виде с указанием протокола http.

Решение:

https://srd.wordpress.org/plugins/ssl-insecure-content-fixer/

https://www.shoutmeloud.com/fix-mixed-content-error-wordpress-adding-ssl-cert...

int13h ★★★★★
()
Последнее исправление: int13h (всего исправлений: 1)
Ответ на: комментарий от int13h

Спасибо за ссылки, они пригодятся. Хотя это еще не весь ответ на вопрос, пойду наверно курить Вики ispmanager)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

ISP тут никоим боком. У вас mixed content. Т.е. у вас ссылки везед вида http://, а должны быть без протокола. Это к CMS

Вот, еще

https://managewp.com/wordpress-ssl-settings-and-how-to-resolve-mixed-content-...

int13h ★★★★★
()
Последнее исправление: int13h (всего исправлений: 1)
Ответ на: комментарий от int13h

Это если у вас mixed content.

И nginx отдает статику сам, а не берет от httpd. И он отдает, но браузер не берет, ибо не секурно.

int13h ★★★★★
()
Ответ на: комментарий от int13h

И nginx отдает статику сам

Я как бы в курсе :-) Иначе зачем его назвали reverse proxy ?

Спасибо.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от int13h

Это у меня уже за день немного ум за разум зашел)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от int13h

Спасибо за дельные советы.

Поменял все ссылки с

http/https
на
//

Поставил плагин https://srd.wordpress.org/plugins/ssl-insecure-content-fixer/

В конфиге nginx указал return 301 https://$host$request_uri;

Вроде пошло :-) Вот, что значит древняя CMS .

Twissel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.