nginx ssl offload tomcat dspace

いやー難儀しました。

ssl -> nginx -> offload ssl -> tomcat dspace
を実現したい。

/etc/nginx/nginx.conf
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    upstream backend {
        ip_hash;
        server localhost:8080 fail_timeout=0;
    }
    server {
        server_name ore.ne.jp;

        root         /usr/share/nginx/html;

        access_log   /var/log/nginx/access.log;
        error_log    /var/log/nginx/error.log;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        location /xmlui/ {
            proxy_set_header X-Real-IP             $remote_addr;
            proxy_set_header X-Forwarded-Server    $host;
            proxy_set_header Host                  $http_host;
            proxy_set_header X-Forwarded-For       $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto     https;
            proxy_redirect  off;
            proxy_pass http://backend;
        }
        location /jspui/ {
            proxy_set_header X-Real-IP             $remote_addr;
            proxy_set_header X-Forwarded-Server    $host;
            proxy_set_header Host                  $http_host;
            proxy_set_header X-Forwarded-For       $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto     https;
            proxy_redirect  off;
            proxy_pass http://backend;
        }
        location /oai/ {
            proxy_set_header X-Real-IP             $remote_addr;
            proxy_set_header X-Forwarded-Server    $host;
            proxy_set_header Host                  $http_host;
            proxy_set_header X-Forwarded-For       $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto     https;
            proxy_redirect  off;
            proxy_pass http://backend;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
        # Configure /cgi-bin/scripts to go through php-fastcgi
        location ~ ^/cgi-bin/.*\.(cgi|pl|py|rb) {
          gzip off;
          fastcgi_pass  127.0.0.1:4932;
          fastcgi_index cgi-bin.php;
          fastcgi_param SCRIPT_FILENAME    /etc/nginx/cgi-bin.php;
          fastcgi_param SCRIPT_NAME        /cgi-bin/cgi-bin.php;
          fastcgi_param X_SCRIPT_FILENAME  /var/www/awstats$fastcgi_script_name;
          fastcgi_param X_SCRIPT_NAME      $fastcgi_script_name;
          fastcgi_param QUERY_STRING       $query_string;
          fastcgi_param REQUEST_METHOD     $request_method;
          fastcgi_param CONTENT_TYPE       $content_type;
          fastcgi_param CONTENT_LENGTH     $content_length;
          fastcgi_param GATEWAY_INTERFACE  CGI/1.1;
          fastcgi_param SERVER_SOFTWARE    nginx;
          fastcgi_param REQUEST_URI        $request_uri;
          fastcgi_param DOCUMENT_URI       $document_uri;
          fastcgi_param DOCUMENT_ROOT      $document_root;
          fastcgi_param SERVER_PROTOCOL    $server_protocol;
          fastcgi_param REMOTE_ADDR        $remote_addr;
          fastcgi_param REMOTE_PORT        $remote_port;
          fastcgi_param SERVER_ADDR        $server_addr;
          fastcgi_param SERVER_PORT        $server_port;
          fastcgi_param SERVER_NAME        $server_name;
          fastcgi_param REMOTE_USER        $remote_user;
        }

        listen 443 ssl; # managed by Certbot

        if ($scheme != "https") {
            return 301 https://$host$request_uri;
        } # managed by Certbot

        ssl on;
        ssl_certificate /etc/letsencrypt/live/ore.ne.jp/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/ore.ne.jp/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_session_tickets off;

    }

}


/opt/tomcat/conf/server.xml

<?xml version="1.0" encoding="UTF-8"?>
<server port="8005" shutdown="SHUTDOWN">
  <listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -->
  <listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  <globalnamingresources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <!-- A "Service" is a collection of one or more "Connectors" that share
       a single "Container" Note:  A "Service" is not itself a "Container",
       so you may not define subcomponents such as "Valves" at this level.
       Documentation at /docs/config/service.html
   -->
  <service name="Catalina">
    <connector port="8080" protocol="HTTP/1.1"
               maxThreads="150"
               minSpareThreads="25"
               maxSpareThreads="75"
               enableLookups="false"
               acceptCount="100"
               disableUploadTimeout="true"
               URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443"
               proxyPort="443"
               scheme="https"
               proxyName="ore.ne.jp"
     />
    <connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <engine name="Catalina" defaultHost="localhost">
      <realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <valve className="org.apache.catalina.valves.RemoteIpValve"
          remoteIpHeader="x-forwarded-for"
          remoteIpProxiesHeader="x-forwarded-by"
          protocolHeader="x-forwarded-proto"
        />
        <valve className="org.apache.catalina.valves.AccessLogValve"
               directory="logs"
               prefix="access_log" suffix=".txt"
               rotatable="false"
               pattern="%h %l %u %t "%r" %s %b" />

      </Host>
    </Engine>
  </Service>
</Server>

コメント

ドメインサーチ

https://www.makko.biz/whois/?q=bg.bahaiquotesillustrated.info

このブログの人気の投稿

Apacheプロセス増加について

wgetでsitemap作成

ApacheでSSL自己証明書作成(オレオレ証明書)