栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

阿里云Nginx配置

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

阿里云Nginx配置

文章目录
  • Nginx&Https的配置
    • 01、Https认识
    • 02、Https的应用场景
    • 03、Https监听的端口
    • 04、Https实现步骤
    • 05、购买域名
    • 06、域名备案
    • 07、购买阿里云服务器
    • 08、域名和IP的绑定
      • 01、对域名进行解析
      • 02、最终配置如下
    • 09、开放服务端口
    • 10、申请SSL证书
    • 11、安装Nginx服务
  • Nginx安装
      • 01、创建nginx服务器目录
      • 02、下载安装
      • 03、安装编译工具及库文件
      • 04、解压nginx
      • 05、创建nginx的临时目录
      • 06、进入安装包目录
      • 07、编译安装
      • 08、 make编译
      • 09、 安装
      • 10、 进入sbin目录启动nginx
      • 11、打开浏览器,访问虚拟机所处内网ip即可打开nginx默认页面,显示如下便表示安装成功:
      • 12、注意事项
      • 13、配置nginx的环境变量
    • 12、ssl安全证书的上传
    • 13、nginx和ssl配置
    • 14、如果配置应用程序的https服务呢?
    • 15、完整配置
    • 16、宝塔的隐患 - Nginx安装的隐患

Nginx&Https的配置 01、Https认识

HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。

HTTP 协议以明文方式发送内容,==不提供任何方式的数据加密,==如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

02、Https的应用场景

1、当然考虑网站数据传递的安全性

2、基于前后端分离开发方式,比如微信小程序,APP开发,比如ios开发。等这些移动端应用开发,比如:ios苹果软件开发,如果说你的软件要上架到苹果应用市场,那么你的服务器接口必须是:https。或者微信小程序:在真实的项目发布的,如果不是https的接口你也是通不过。

03、Https监听的端口

443

04、Https实现步骤

1、你必须要有要有个域名,

2、并且要有服务器(提供ip)

3、并且服务器ip和你域名要进行解析

4、免费领取一个ssl安全证书。

5、把域名和ssl安全证书进行绑定授权

6、授权成功以后,然后把证书安装到nginx中。

05、购买域名

万网:https://wanwang.aliyun.com/

购买成功以后。进入到阿里云的【控制面板】中,找到【域名】配置

06、域名备案

购买域名一定要备案才能进行下面的使用,否则你是不能去解析和映射的IP服务器,备案的地址:

https://beian.aliyun.com/?spm=a2c1d.8251892.top-nav.dicp.a56c5b762IUqTs

如果不明白:多问客服和提交工单.

07、购买阿里云服务器


得到服务Ip。

08、域名和IP的绑定

一般建议:主域名:www.xxx.com , xxxx.com

一般建议:API的域名:api.xxx.com

01、对域名进行解析

输入自己服务器的IP地址

主机记录可以配WWW或是*

02、最终配置如下

09、开放服务端口

如果是单机部署多应用的话,要开放如下几个端口即可:

  • 80
  • 443

如果是多机部署多应用的话,那么你必须开放对应服务器安装的服务的端口,比如你这个服务器安装了

redis、mysql、kafka ,zk

  • 6379

  • 3306

  • 2181

如何开放呢?在esc服务器下的【安全组中】


提示:

开放端口的原则就是:如果你的服务(tomcat,nginx,mysql,kafka等)如果你要对外访问的话,你就必须在安全组中把这些服务器的端口进行配置开放即可。也就说:你一定在安全组中开放了,才可以对外访问。否则全部拒绝。

10、申请SSL证书

在搜索栏输入SSL

申请免费证书,输入对应的域名

创建证书

填写证书申请

对证书进行下载

选择需要部署的服务器类型

将证书下载后解压得到两个文件

11、安装Nginx服务
Nginx安装

nginx下载:http://nginx.org/en/download.html

01、创建nginx服务器目录
mkdir -p /www/kuangstudy/nignx
cd /www/kuangstudy/nignx
02、下载安装
wget http://nginx.org/download/nginx-1.20.1.tar.gz
03、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
04、解压nginx
tar -zxvf nginx-1.20.1.tar.gz
05、创建nginx的临时目录
mkdir -p /var/temp/nginx
06、进入安装包目录
cd nginx-1.20.1
07、编译安装
./configure 
--prefix=/usr/local/nginx 
--pid-path=/var/run/nginx.pid 
--lock-path=/var/lock/nginx.lock 
--error-log-path=/var/log/nginx/error.log 
--http-log-path=/var/log/nginx/access.log 
--with-http_gzip_static_module 
--http-client-body-temp-path=/var/temp/nginx/client 
--http-proxy-temp-path=/var/temp/nginx/proxy 
--http-fastcgi-temp-path=/var/temp/nginx/fastgi 
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi 
--http-scgi-temp-path=/var/temp/nginx/scgi 
--with-http_stub_status_module 
--with-http_ssl_module 
--with-http_stub_status_module 

安装以后的目录信息

nginx path prefix: "/usr/local/nginx"  nginx binary file: "/usr/local/nginx/sbin/nginx"  nginx modules path: "/usr/local/nginx/modules"  nginx configuration prefix: "/usr/local/nginx/conf"  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"  nginx pid file: "/var/run/nginx.pid"  nginx error log file: "/var/log/nginx/error.log"  nginx http access log file: "/var/log/nginx/access.log"  nginx http client request body temporary files: "/var/temp/nginx/client"  nginx http proxy temporary files: "/var/temp/nginx/proxy"  nginx http fastcgi temporary files: "/var/temp/nginx/fastgi"  nginx http uwsgi temporary files: "/var/temp/nginx/uwsgi"  nginx http scgi temporary files: "/var/temp/nginx/scgi"

08、 make编译
make
09、 安装
make install
10、 进入sbin目录启动nginx
cd /usr/local/nginx/sbin

执行nginx启动

./nginx 
#停止:
./nginx -s stop
#重新加载:
./nginx -s reload 
11、打开浏览器,访问虚拟机所处内网ip即可打开nginx默认页面,显示如下便表示安装成功:
http://ip

12、注意事项
  1. 如果在云服务器安装,需要开启默认的nginx端口:80

  2. 如果在虚拟机安装,需要关闭防火墙

  3. 本地win或mac需要关闭防火墙

  4. nginx的安装目录是:/usr/local/nginx/sbin

13、配置nginx的环境变量
vim /etc/profile

在文件的尾部追加如下:

export NGINX_HOME=/usr/local/nginx
export PATH=$NGINX_HOME/sbin:$PATH

重启配置文件

source /etc/profile
12、ssl安全证书的上传

在nginx的conf目录下新建一个cert目录,并将这两个文件上传到cert目录下

13、nginx和ssl配置
# 这个服务器是http://www.itbooking.net的服务
server {
    listen 80;
    server_name www.itbooking.net; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        index index.html index.htm;
    }
}


# 这个服务器是https://www.itbooking.net的服务
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name www.itbooking.net; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/6179501_www.itbooking.net.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/6179501_www.itbooking.net.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        root html;  #站点目录。
        index index.html index.htm;
    }
}

校验配置是否有误如下:

[root@iZuf62zev3la2ivndnxra5Z servers]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

然后重启nginx服务

nginx -s reload

然后访问服务器

https://www.itbooking.net/

说明安装成功!

14、如果配置应用程序的https服务呢?

1、准备一个springboot项目

2、编写一个首页

3、上传项目到云服务器上

nohup java -jar springboot-app-0.0.1-SNAPSHOT.jar --server.port=8080 >>1.txt &
nohup java -jar springboot-app-0.0.1-SNAPSHOT.jar --server.port=8081 >>2.txt &;
nohup java -jar springboot-app-0.0.1-SNAPSHOT.jar --server.port=8082 >>3.txt &;

4、配置nginx和tomcat的负载均衡配置

5、完成测试和配置

15、完整配置
upstream tomcatservers {
   server 127.0.0.1:8080;
   server 127.0.0.1:8081;
   server 127.0.0.1:8082;
}

server {
    listen 80;
    server_name www.itbooking.net; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        proxy_pass http://tomcatservers;
    }
}


#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name www.itbooking.net; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/6179501_www.itbooking.net.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/6179501_www.itbooking.net.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://tomcatservers;
    }
}




#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name api.itbooking.net; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/6184356_api.itbooking.net.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/6184356_api.itbooking.net.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
         proxy_pass http://tomcatservers;
    }
}


记住:一定要重启nginx服务器即可。

16、宝塔的隐患 - Nginx安装的隐患

前提,域名要备案。必须手动安装nginx,如果之前使用宝塔安装过nginx的话,直接把阿里云服务器重置,换个系统,因为宝塔装nginx会写进去一些环境,卸载是卸载不干净的,切记!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675789.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号