当前位置: 首页 > article >正文

nginx部署和安装-后端程序多端口访问-后端代理设置

部分补充

查看nginx是否安装http_ssl_module模块

./nginx -V

看到有 configure arguments: --with-http_ssl_module, 则已安装。

如果没有安装:参考文档

nginx官网地址:nginx: download

这里下载nginx-1.18.0稳定版tar.gz

下载后,利用winscp解压上传到root目录下,方便我们打开。

--配置ssl模块
cd nginx-1.18.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module

命令拷贝复制

cp ./objs/nginx /usr/local/nginx/sbin/

常用命令

安装nginx: yum install nginx
看是否有nginx进程:netstat -anput | grep nginx
查看服务器端口占用情况:netstat -ntlp
nginx启动:nginx
nginx重启:nginx -s reload
关闭nginx:
nginx -s stop : 快速停止nginx
nginx -s quit :完整有序的停止nginx
查看默认的nginx配置文件路径: nginx -t
注:如果有nginx.conf配置的更改,需要重启nginx配置才会生效。如果只是更改dist包/html,则可以不重启nginx。

反向代理

#接口端
        location /police/ {
            proxy_pass   http://192.168.1.182:8852/police/;
            proxy_redirect default;
            proxy_http_version 1.1;
            proxy_connect_timeout   60;
            proxy_send_timeout      60;
            proxy_read_timeout      90;
        }

单个代理就直接在http,server中添加即可;如果是多个代理,就在server中加,只要地址不同即可。即将 location /police/变成 location /xcx/在地址里面把端口换或者ip换就行了。

在Nginx服务器安装证书

  1. 执行以下命令,在Nginx的conf目录下创建一个用于存放证书的目录。

    cd /usr/local/nginx/conf  #进入Nginx默认配置文件目录。该目录为手动编译安装Nginx时的默认目录,如果您修改过默认安装目录或使用其他方式安装,请根据实际配置调整。
    mkdir cert  #创建证书目录,命名为cert。
  2. 将证书文件和私钥文件上传到Nginx服务器的证书目录(/usr/local/nginx/conf/cert)。

    说明

    您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTy、Xshell或WindSCP等。如果您使用的阿里云云服务器 ECS,上传文件具体操作,请参见本地Windows主机使用MSTSC上传文件到Windows云服务器或上传文件到Linux云服务器。

  3. 编辑Nginx配置文件nginx.conf,修改与证书相关的配置。

    1. 执行以下命令,打开配置文件。

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

      重要

      nginx.conf默认保存在/usr/local/nginx/conf目录下。如果您修改过nginx.conf的位置,可以执行nginx -t,查看nginx的配置文件路径,并将/usr/local/nginx/conf/nginx.conf进行替换。

    2. 在nginx.conf中定位到server属性配置。

      image..png

    3. 删除行首注释符号#,并参考如下示例进行修改。

      server {
           #HTTPS的默认访问端口443。
           #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
           listen 443 ssl;
           
           #填写证书绑定的域名
           server_name <yourdomain>;
       
           #填写证书文件绝对路径
           ssl_certificate cert/<cert-file-name>.pem;
           #填写证书私钥文件绝对路径
           ssl_certificate_key cert/<cert-file-name>.key;
       
           ssl_session_cache shared:SSL:1m;
           ssl_session_timeout 5m;
      	 
           #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
           #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
           ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
           ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
      
           #表示优先使用服务端加密套件。默认开启
           ssl_prefer_server_ciphers on;
       
       
          location / {
                 root html;
                 index index.html index.htm;
          }
      }
    4. 可选:设置HTTP请求自动跳转HTTPS。

      如果您希望所有的HTTP访问自动跳转到HTTPS页面,可通过rewrite指令重定向到HTTPS。

      重要

      以下代码片段需要放置在nginx.conf文件中server {}代码段后面,即设置HTTP请求自动跳转HTTPS后,nginx.conf文件中会存在两个server {}代码段。

      server {
          listen 80;
          #填写证书绑定的域名
          server_name <yourdomain>;
          #将所有HTTP请求通过rewrite指令重定向到HTTPS。
          rewrite ^(.*)$ https://$host$1;
          location / {
              index index.html index.htm;
          }
      }

      配置效果如下图所示:

      image..png

  4. 执行以下命令,重启Nginx服务。

    cd /usr/local/nginx/sbin  #进入Nginx服务的可执行目录。
    ./nginx -s reload  #重新载入配置文件。

    说明

    • 报错the "ssl" parameter requires ngx_http_ssl_module:您需要重新编译Nginx并在编译安装的时候加上--with-http_ssl_module配置。

    • 报错"/cert/3970497_demo.aliyundoc.com.pem":BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/cert/3970497_demo.aliyundoc.com.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file):您需要去掉证书相对路径最前面的/。例如,您需要去掉/cert/cert-file-name.pem最前面的/,使用正确的相对路径cert/cert-file-name.pem

查看是否部署成功

进入自己的域名看是否正常。


http://www.kler.cn/a/157456.html

相关文章:

  • 时间管理系统|Java|SSM|JSP|
  • day11|150,239,347
  • 批处理理解
  • 后端使用Spring Boot框架 + 前端VUE 实现滑动模块验证码
  • [网络安全]XSS之Cookie外带攻击姿势详析
  • javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.13.13 not verified:
  • Python实现FA萤火虫优化算法优化卷积神经网络分类模型(CNN分类算法)项目实战
  • 基于Eclipse+Mysql+Tomcat开发的 教学评价管理系统
  • using meta-SQL 使用元SQL 六
  • mfc项目设置软件版本
  • Unity Canvas、Canvas Scaler、Graphic Raycaster、EventSystem 组件详解
  • 分享 | 顶刊高质量论文插图配色(含RGB值及16进制HEX码)(第一期)
  • 基于SSM的图书馆管理系统的设计与实现
  • 【论文阅读】1 SkyChain:一个深度强化学习的动态区块链分片系统
  • 【滤波第二期】中值滤波的原理和C代码
  • 【开源】基于Vue和SpringBoot的音乐偏好度推荐系统
  • 跨网文件摆渡系统:安全、可控的数字传输桥梁
  • MyBatis查询优化:枚举在条件构建中的妙用
  • 写给初学者的 HarmonyOS 教程 -- 状态管理(@State/@Prop/@Link 装饰器)
  • linux 应用开发笔记---【标准I/O库/文件属性及目录】
  • PTA 一维数组7-3出生年(本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话)
  • C++算法入门练习——最大连续子序列和
  • vue2+electron桌面端一体机应用
  • golang实现函数yamlToStruct(infile,outFile)
  • 如何拆解Unity 2022.3版本的AssetBundle
  • GB/T 29734.1-2013 铝木复合门窗检测