阿里雲系列一 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;
}
}
很喜歡的一個文藝女青年的公衆號“內心的話”,大家可以去關注一下。