info

多分フロントエンドエンジニア寄りのフリーランスWeb制作者のサイトです。

他バンドでギター弾いたり、max/msp触ったり等もしております。
最近はチャリ買ってはしゃいでます。
あと犬が飼いたい。

どうぞお気軽にご連絡いただけまししたら幸いです。

works

  • > toyota
  • > glico
  • > bandainamco
  • > shiseido
  • > pioner
  • > mitsui
  • > yodobashi
  • > panasonic
  • > square enix
  • etc..

※詳細をご希望の方はお手数ですが

contactよりご連絡お願いします。

links

リンクです。増えるといいな

contact

ご依頼/ご相談は下記よりお問い合わせください。
その他ご質問等ありましたらお気軽にご連絡ください。

さくらVPS(CentOS)でnginxフロントに置いてSSLリバースプロキシでapache表示とWordPressのリダイレクト等

概要

google検索等で常時SSL化した方がいい流れっぽいので
少し遅ればせながら本サイトで対応してみた際詰まった箇所等があったのでのメモです。

さくらVPS(CentOS)で
Nginxからのリバースプロキシでapache(wordpress)表示するといった流れですが
サーバー周りとリクエストヘッダとか知識乏しいので、とりあえずこれで動きましたよっていう設定です。

SSLの証明書周りは下記とか参考にしました。

SSL JPRSってのが追加された?のか一番安いので入れてみました。
入れてから気づいたけどサブドメインはまた別で用意するかワイルドカードSSL証明が必要っぽい
しかも高い。追って考えます。

nginx

//nginx default.conf
server{
	listen 80;
	server_name   domain.com;
	return 301 https://$host$request_uri;
	// httpリクエストはhttpsにリダイレクト
}
server{
	listen 443;
	server_name   domain.com;
	ssl on;
	ssl_certificate /path/to/server.crt;
	ssl_certificate_key /path/to//server.key;
	proxy_set_header Host $http_host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-Proto https;
	proxy_set_header X-Forwarded-Host $host;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Server $http_host;
	location / {
		proxy_pass http://127.0.0.1:8888;
		// apacheにリバースプロクシ
	}
}

多分Nginx->apacheの流れはhttpでよいみたい?です。

apache

//apache virtual.conf
<VirtualHost *:8888>
	ServerName domain.com
	DocumentRoot /var/www/html/domain.com/
</VirtualHost>

wordpress

でNginxとapacheをrestartしたらサーバー側はOKなハズ。
後wp_optionのsiteurl/homeをhttpsに変更ました。

がwordpress側でリダイレクトがうまく行ってないみたいで結構色々な記事見て苦戦したのですが

僕の場合WP側にも下記追記で一応うまく動きました。

//wp-config.php
define('WP_DEBUG', false);
define('FORCE_SSL_ADMIN', true);
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
	$_SERVER['HTTPS']='on';
}
# 管理画面でのhttpsを強制する設定みたなのっぽい
# HTTP_X_FORWARDED_PROTOってのがnginxで設定したproxy_set_header X-Forwarded-Proto https;ヘッダが関係してるっぽい。かな?

あとhome画面/index.phpでもリダイレクトループみたいな感じになって表示できなかったので
最新バージョンでは書かなくても大丈夫になったとかなんやかんや情報あったんですが
下記追記というかtemplate_redirectのアクションコメントで一応期待どおりの動きになりました。

//wp-includes/template-loader.php
-  do_action( 'template_redirect' );
+ // do_action( 'template_redirect' );

ただの羅列&原因とか対処適当でとりあえず動いたよってだけですが
客仕事用のサイトでもないのでとりあえず良しとします。
誰かお困りの方の参考になれば幸いです。

以上です。

運営サイト

広告なのよー

ツイッター