阿里云系列一 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;
}
}
很喜欢的一个文艺女青年的公众号“内心的话”,大家可以去关注一下。