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

来源:http://www.cnblogs.com/hackyo/archive/2016/09/21/5891615.html
-Advertisement-
Play Games

由於需要,得搭建個nginx+tomcat+https的伺服器,搜了搜網上的發現總是有錯,現在整理了些有用的,備忘。 環境:Centos6.5、JDK1.8、Tomcat8、Nginx1.10.1準備材料:1.JDK1.8安裝包jdk-8u102-linux-x64.tar.gz 2.Tomcat8 ...


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

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

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

3.Nginx1.10安裝包nginx-1.10.1.tar.gz

 

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

[root@localhost ~]# tar zxvf jdk-8u102-linux-x64.tar.gz
[root@localhost ~]# mv jdk1.8.0_102 /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.0.37.tar.gz
[root@localhost ~]# mv apache-tomcat-8.0.37 /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

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

設置開機啟動

[root@localhost ~]# echo "su - tomcat /usr/local/tomcat/bin/startup.sh" >> /etc/rc.local

3、Nginx安裝配置
配置Nginx用戶

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

安裝依賴包

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

解壓併進入文件夾內

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

配置安裝

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

配置Nginx

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

這一步需要手動將ssl證書放入/usr/local/nginx/conf/目錄下,分別為cert.crt和cert.key文件
如果證書文件是其他格式,可以自行搜索轉換方法
如果無須配置https,更改443埠即可

nginx主配置文件

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

events {
    use epoll;
    worker_connections 1024;
}

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.domain.com; #修改功能變數名稱
        return 301 https://$server_name$request_uri; #強制跳轉443埠
    }

    server {
        listen 443 ssl;
        server_name www.domain.com; #修改功能變數名稱
        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$ {
            index index.jsp;
            proxy_pass http://127.0.0.1:8080;
        }
        location /nginxstatus {
            stub_status on;
            access_log on;
            auth_basic "nginxstatus";
            auth_basic_user_file /usr/local/nagois/etc/htpasswd.users;
        }
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
    }
}

啟動伺服器

/usr/local/nginx/sbin/nginx

瀏覽器訪問出現小貓即成功。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文目錄列表: 1、SQL Server表設計視圖中的數據類型列展示效果 2、模擬實現類似的數據類型顯示效果 3、測試效果 4、總結語 5、參考清單列表 本文目錄列表: 1、SQL Server表設計視圖中的數據類型列展示效果 2、模擬實現類似的數據類型顯示效果 3、測試效果 4、總結語 5、參考清 ...
  • 查看api:http://hadoop.apache.org/docs/stable/api/ 若能獲取相應的name屬性,返回name值,若無法獲得,返回null. 若能獲取相應的name屬性,返回name值,若無法獲得,返回nulldefaultValue. ...
  • 重點:下麵的安裝步驟都在斷網環境下安裝的 因為我想查看聯網跟沒有聯網SQL2012會不會下載並安裝.net2.0 和.net3.5和.net4和SP1補丁包 我的環境: 沒有集成SP1補丁包的安裝包大小是4.71GB,在論壇上各個安裝包大小版本都有,我覺得還是以MSDN我告訴你或者MSDN為準。 問 ...
  • RHEL7安裝後,預設開啟SSH服務以便遠程配置,但預設埠22並不安全,一般不建議使用預設埠,那就修改SSH預設埠。在sshd_config裡面的修改RHEL7.0上修改和7.0以下類似,但要註意SELinux的修改。 修改步驟: 1、查看是否已安裝SSH軟體包 # rpm -qa|grep ...
  • 前言 已經不記得搭建過多少次LAMP的環境了,不僅僅在windows上折騰過,也在linux上弄過,windows倒還好,麻煩事不多,搭建過一次基本上下次就知道應該怎麼配置了,可是在linux每次搭建LAMP時我都總是忘記上一次是怎麼搭建成功的了... 所以一次又一次地去Google,找教程,而且發 ...
  • apt get直接更新即可 ...
  • MDK st-link下載STM32程式出現Internal command error和Error:Flash download failed. Target DLL Error: flash download failed - Target DLL has been cancelled MDK ...
  • 一、目錄處理文件 1.刪除文件或目錄 rm -rf [文件或目錄] //remove:刪除文件或目錄 -r:刪除目錄 -f:強制 2.複製文件或目錄 cp [選項] [原文件或目錄] [目標目錄] //[選項] -r:複製目錄 -p:連帶文件屬性複製 -d:若原文件是鏈接文件,則複製鏈接屬性 -a: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...