NginxでApacheへProxyPass(Redmine環境構築)

^/redmineでアクセスされたものは、バックエンドのApacheへ投げる。

それ以外は、Nginxのフロント側で処理する。

# vi /etc/nginx/sites-enabled/mydomain

  1 # Backend
  2 upstream backend {
  3     server 127.0.0.1:10080;
  4 }
  5 
  6 server {
  7 
  8     listen 80;
  9     server_name mydomain;
 10     access_log  /var/www/mydomain/logs/access.log;
 11     error_log   /var/www/mydomain/logs/error.log;
 12 
 13     # Redmine
 14     location /redmine {
 15         # Rewrite
 16         rewrite ^/redmine/(.*)?$ https://$host/redmine/$1 last;
 17     }
 18 
 19     # DocumentRoot
 20     location / {
 21         root /var/www/mydomain/public_html;
 22         index index.html index.htm index.php;
 23     }
 24 
 25     location ~ /\.ht {
 26         deny all;
 27     }
 28 }
 29 
 30 server {
 31 
 32     listen 443;
 33     ssl on;
 34     ssl_certificate /etc/nginx/conf.d/server.crt;
 35     ssl_certificate_key /etc/nginx/conf.d/server.key;
 36     server_name mydomain;
 37     access_log  /var/www/mydomain/logs/access.log;
 38     error_log   /var/www/mydomain/logs/error.log;
 39 
 40     # DocumentRoot
 41     location / {
 42         root /var/www/mydomain/public_html;
 43         index index.html index.htm index.php;
 44     }
 45 
 46     # Redmine
 47     location /redmine {
 48         proxy_redirect off;
 49         proxy_set_header Host $host;
 50         proxy_set_header X-Real-IP $remote_addr;
 51         proxy_set_header X-Forwarded-Host $host;
 52         proxy_set_header X-Forwarded-Server $host;
 53         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 54         proxy_pass http://backend;
 55     }
 56 
 57     location ~ /\.ht {
 58         deny all;
 59     }
 60 }