Nginx+Tomcat+Https 服務器負載均衡配置


這篇過氣了!

重新補一個:http://www.cnblogs.com/hackyo/p/6809773.html

 

由於需要,得搭建個nginx+tomcat+https的服務器,搜了搜網上的發現總是有錯,現在整理了些有用的,備忘。

環境:Centos6.5、JDK1.8、Tomcat8.5、Nginx1.10.2
准備材料:
1.JDK1.8安裝包jdk-8u131-linux-x64.tar.gz

下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

2.Tomcat8安裝包apache-tomcat-8.5.14.tar.gz

下載地址:http://tomcat.apache.org/download-80.cgi

3.Nginx1.10.2安裝包nginx-1.10.2.tar.gz

下載地址:http://nginx.org/en/download.html

 

1、JDK安裝配置
解壓並安裝到/usr/local/jdk

[root@localhost ~]# tar zxvf jdk-8u131-linux-x64.tar.gz
[root@localhost ~]# mv jdk1.8.0_131 /usr/local/jdk

配置JDK環境變量

[root@localhost ~]# vi /etc/profile

在底部加入以下內容

JAVA_HOME=/usr/local/jdk
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME JRE_HOME PATH CLASSPATH

應用環境變量

[root@localhost ~]# source /etc/profile

檢測是否成功,顯示版本說明成功

[root@localhost ~]# java -version

2、Tomcat安裝配置
解壓並安裝到/usr/local/tomcat

[root@localhost ~]# tar zxvf apache-tomcat-8.5.14.tar.gz
[root@localhost ~]# mv apache-tomcat-8.5.14 /usr/local/tomcat

默認tomcat是root身份運行的,這樣不安全,這里設置普通用戶運行

[root@localhost ~]# groupadd tomcat
[root@localhost ~]# useradd -g tomcat tomcat
[root@localhost ~]# passwd tomcat
[root@localhost ~]# chown tomcat.tomcat -R /usr/local/tomcat

編輯Tomcat配置文件,開啟https服務

[root@localhost ~]# vi /usr/local/tomcat/conf/server.xml

找到這行

    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

修改為

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/cert.jks"
                         certificateKeystorePassword="此處修改為證書密碼"
                         certificateKeyAlias="此處修改為證書別名"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

證書可自制,也可以免費申請到。

一般需要將證書轉換為jks格式,可通過這里來在線轉換https://www.chinassl.net/ssltools/convert-ssl.html

其中certificateKeystoreFile為證書文件的路徑,certificateKeystorePassword為證書密碼

certificateKeyAlias為證書別名,可使用JDK自帶的工具查看,命令行:keytool -list -v -keystore mykey.jks -storepass mypassword

保存文件並退出

這樣一來https就可以訪問了,但是https並不是強制使用,所以還要繼續設置

編輯Tomcat配置文件,強制使用https

[root@localhost ~]# vi /usr/local/tomcat/conf/web.xml

在最后的</welcome-file-list>后面加上下面的代碼

    <login-config>  
        <auth-method>CLIENT-CERT</auth-method>  
        <realm-name>Client Cert Users-only Area</realm-name>  
    </login-config>  
    <security-constraint>  
        <web-resource-collection >  
            <web-resource-name >SSL</web-resource-name>  
            <url-pattern>/*</url-pattern>  
        </web-resource-collection>  
        <user-data-constraint>  
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
        </user-data-constraint>  
    </security-constraint>

這樣Tomcat的https便配置成功。

此時可以啟動Tomcat服務器,並且訪問8080端口已經可以看到小貓了。

[root@localhost ~]# /usr/local/tomcat/bin/startup.sh

2、Nginx安裝配置

配置Nginx用戶

[root@localhost ~]# groupadd nginx
[root@localhost ~]# useradd -g nginx -s /sbin/nologin nginx

升級系統,並安裝依賴包

[root@localhost ~]# yum -y update
[root@localhost ~]# yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc

解壓並進入文件夾

[root@localhost ~]# tar zxvf nginx-1.10.2.tar.gz
[root@localhost ~]# cd nginx-1.10.2

配置安裝

[root@localhost nginx-1.10.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
[root@localhost nginx-1.10.2]# make && make install

配置Nginx

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf

這一步需要手動將ssl證書放入/usr/local/nginx/conf/目錄下,分別為cert.crt和cert.key文件

證書可自制,也可以免費申請到。

如果申請到證書為其他格式,可通過這里來在線轉換https://www.chinassl.net/ssltools/convert-ssl.html

nginx主配置文件

user nginx nginx;
worker_processes 2;
error_log logs/error.log;
pid logs/nginx.pid;

events {
    use epoll;
    worker_connections 2048;
}

http {
    include mime.types;
    default_type application/octet-stream;
    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 logs/access.log main;

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 4k;
    proxy_buffers 6 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;

    sendfile on;
    keepalive_timeout 65;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascripttext/css application/xml;
    gzip_vary on;

    server {
        listen 80;
        server_name www.xxx.cn xxx.cn;
        return 301 https://$server_name$request_uri;
    }

    server {
        listen 443 ssl;
        server_name www.xxx.cn xxx.cn;
        ssl_certificate cert.crt;
        ssl_certificate_key cert.key;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        location / {
            root /usr/local/tomcat/webapps/ROOT;
            index index.html index.jsp index.htm;
        }
        location ~ .*.(jsp|servlet)$ {
            index index.html index.jsp index.htm;
            proxy_pass https://127.0.0.1:8443;
        }
        location /nginxstatus {
            stub_status on;
            access_log on;
            auth_basic "nginxstatus";
            auth_basic_user_file /usr/local/nagois/etc/htpasswd.users;
        }
        error_page 400 404 414 500 502 503 504 /Error.html;
    }
}

最后啟動Nginx服務器

[root@localhost ~]# /usr/local/nginx/sbin/nginx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM