阿里云ECS服务器之nginx环境配置含HTTPS配置

一、环境搭建

环境说明:

CentOS 7.4
nginx-1.14.0
java 8

准备工作

更新yum

yum -y update

安装nginx依赖项

yum install -y wget vim gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

拷贝libldap

(CentOS默认安装路径不符,可能导致安装失败。因此需要再将libldap拷贝到新目录)

cp -frp /usr/lib64/libldap* /usr/lib/

创建web服务用户组

(nginx,php等不同服务,需要使用相同的用户才能共享文件。因此我们创建web服务统一的用户组及用户:www组及www用户)

cd /tmp
groupadd www
useradd -g www www

创建网站静态文件目录及Java服务目录

/var/www 静态文件目录(由nginx管理)
/var/jar Java服务目录(存放可执行jar包)

mkdir /var/www/
chown -R www:www /var/www

mkdir /var/jar/
chown -R www:www /var/jar

配置防火墙

CentOS 7.4 使用firewalld 而不是 iptable
启用firewalld

systemctl start firewalld.service

打开80端口并重启

firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload

firewalld 基本操作命令如下:

打开80端口	firewall-cmd --permanent --zone=public --add-port=80/tcp
			firewall-cmd --reload

启动		   systemctl start firewalld.service
停止		   systemctl stop firewalld.service
重启		   systemctl restart firewalld.service
自启动		   systemctl enable firewalld.service
停止自启动	   systemctl disable firewalld.service
查看打开端口	   firewall-cmd --zone=public --list-ports

nginx安装和配置

安装nginx-1.14.0

安装到usr/local目录

cd /usr/local/
wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar -zxvf nginx-1.14.0.tar.gz
rm nginx-1.14.0.tar.gz
cd nginx-1.14.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make
make install

配置nginx自启动

创建nginx服务配置文件

vim /usr/lib/systemd/system/nginx.service

编辑如下内容

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

设置nginx自启动

chmod 754 /usr/lib/systemd/system/nginx.service
systemctl enable nginx.service
systemctl restart nginx.service

nginx配置

编辑配置文件( usr/local/nginx/conf/nginx.conf )

vim usr/local/nginx/conf/nginx.conf

修改nginx.conf中的用户,设置为web服务用户 www

user  www;

修改nginx.conf中的location配置,指向/var/www 目录

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

error_page	500 502 503 504  /50x.html;
location = /50x.html {
	root	/var/www;
}

在nginx.conf 配置文件中将api子域名指向8080端口的 java web服务

        location /api {
            proxy_pass http://localhost:8080;
            proxy_redirect off;
        }

完整nginx.conf 配置文件参考如下:

user  www;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
    
        listen       80;
        server_name  localhost;
        
        location / {
            root	/var/www;
            index	index.html index.htm;
        }
        
        location /api {
            proxy_pass http://localhost:8080;
            proxy_redirect off;
        }
        
        error_page	500 502 503 504  /50x.html;
        location = /50x.html {
            root	/var/www;
        }
    }
}

启用nginx服务

nginx常用命令

启动		service nginx start
重启		service nginx restart
停止		service nginx stop
强制关闭	pkill nginx

Java 8 安装和配置

先卸载已有java环境

安装之前先检查一下系统有没有自带jdk

rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj

如果有安装可以使用如下命令批量卸载所有带有Java的文件

rpm -qa | grep java | xargs rpm -e --nodeps 

安装java 8

安装1.8.0的所有文件

yum install java-1.8.0-openjdk* -y

安装后用 java -version命令可查看版本(当前1.8.0_191)

java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

二、配置https

1、准备工作

1)、申请SSL证书

购买证书
证书列表
SSL证书申请
SSL证书下载

2)、域名解析

1)、申请购买域名

2)、解析域名绑定到服务器的公网IP
域名解析
域名解析列表
域名解析添加记录

2、开始配置https

1)、在/usr/local/nginx/conf目录下创建cert目录,将下载的SSL证书复制到cert目录下

2)、修改nginx配置文件(/usr/local/nginx/conf目录下的nginx.conf文件)

user  www;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
	include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
	
	server {
        listen       80;
        server_name  www.testdomain.cn; #将www.testdomain.cn修改为自己的域名
        rewrite ^(.*)$ https://${server_name}$1 permanent; #将http请求重定向到https

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

        location /xxx {
            proxy_pass http://localhost:8080;
            proxy_redirect off;
        }

        error_page	500 502 503 504  /50x.html;
        location = /50x.html {
            root	/var/www;
        }
        
      }
	server {
		listen 443 ssl;   
		server_name www.testdomain.cn; #将www.testdomain.cn修改为自己的域名
		root html;
		index index.html index.htm;
		ssl_certificate  cert/3367785_www.testdomain.cn.pem; #将3367785_www.testdomain.cn.pem修改为自己的证书文件
		ssl_certificate_key cert/3367785_www.testdomain.cn.key;#将3367785_www.testdomain.cn.key修改为自己的证书文件          
		ssl_session_timeout 5m;
		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  
		ssl_prefer_server_ciphers on;   
		location / {
			proxy_pass http://127.0.0.1:8080;#需要访问的端口
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_redirect default;
            root html; 
			index index.html index.htm;   
		}
	}        
}

3)、重启nginx服务器

service nginx restart
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值