阿里雲系列二 nginx安裝、負載均衡、https配置

阿里雲系列一 JDK、Maven、GIT

寫完JDK、MAVEN 和GIT 的安裝,今天寫安裝Nginx安裝和配置過程中遇到的問題和最後的解決方案。
自己用到的安裝包上傳到百度雲盤了,需要的可以去下載
鏈接:https://pan.baidu.com/s/1sQGop2mnEnrJ9pyzsP-n3Q 密碼:jx2d

先創建一個nginx的操作用戶,不要用root操作,用root用戶操作雖然簡單,但是生產環境一般是對外開放root權限的。

groupadd codeUser
useradd -G codeUser nginxUser
passwd nginxUser
su - nginxUser

大家可以去Nginx官網下載安裝包。

-rw-r--r--  1 nginxUser codeUser 1039136 Mar 25 20:28 nginx-1.17.9.tar.gz

然後執行以下命令解壓安裝包

tar -zxvf  nginx-1.17.9.tar.gz 

進入解壓之後的文件夾,在安裝Linux之前了需要先安裝一些依賴的

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

然後執行

./configure --prefix=/home/nginxUser/nginx --with-http_ssl_module

–prefix=/home/nginxUser/nginx指定nginx的安裝路徑
–with-http_ssl_module 啓用https
編譯沒有問題之後執行以下命令

make && make install

爲了方便執行nginx命令我們設置這樣就不每次執行nginx命令都切換目錄

export NGINX_HOME=/home/nginxUser/nginx/sbin
export PATH="${PATH}:${NGINX_HOME}"

啓動nginx,執行以下命令

nginx

https配置

nginx的安裝比較簡單,接下來我們進行負載均衡和https的配置.
https會用到證書,我們使用openssl生成自簽發證書。

  • 生成ca私鑰ca.key
openssl genrsa -des3 -out ca.key 2048
  • 生成ca公鑰 ca.crt
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
  • 生成服務器私鑰
  openssl genrsa -des3 -out server.key 2048
  • 從服務器server私鑰生成簽名請求CSR文件
openssl req -new -key server.key -out server.csr

生成服務器的crt文件

openssl ca -policy policy_anything -days 3650 -cert ca.crt -keyfile ca.key -in server.csr -out server.crt

如果生成crt文件文件報文件夾不存在,執行以下操作
修改/etc/pki/tls/openssl.cn後執行以下命令

mkdir -p CA/newcerts
touch CA/index.txt
touch CA/serial
echo 00 > CA/serial

在這裏插入圖片描述
將生成好的文件放到/home/nginxUser/nginx/conf/cert目錄下,修改nginx.conf配置

server {
        listen       8083 ssl;
        server_name  localhost;

        ssl_certificate     cert/server.crt;
        ssl_certificate_key  cert/server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_protocols SSLv2 SSLv3 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }

    }

因爲非root用戶不能使用1024以下端口443默認端口,所以配置成了8083端口,我們可以配置端口轉發,編輯/etc/sysctl.conf新增

net.ipv4.ip_forward = 1

執行配置生效命令

 sysctl -p

在修改之前,如果你是centOS 7系統,那麼需要先安裝一個東西來使接下來的命令可以使用:

yum -y install iptables-services

端口轉發443端口轉發到8083,保存並重啓iptables

iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8083
service iptables save
service iptables restart

配置完成之後我們重啓nginx我們來驗證一下。訪問https://ip

在這裏插入圖片描述## 負載均衡配置

主要是配置up

 upstream  SpringBoot {
        server   ip:8080 weight=5; 
        server   ip:8080 weight=5;
    }

貼上https和負載均衡的完整配置

server {
        listen       8083 ssl;
        server_name  localhost;

        ssl_certificate     cert/server.crt;
        ssl_certificate_key  cert/server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_protocols SSLv2 SSLv3 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
        location /SpringBoot {
            proxy_pass   http://SpringBoot;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_ignore_client_abort on;
            client_max_body_size    10m;
            client_body_buffer_size 512k;
        }
    }

很喜歡的一個文藝女青年的公衆號“內心的話”,大家可以去關注一下。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章