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属性配置。

    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;
          }
      }
      

      配置效果如下图所示:

  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

查看是否部署成功

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

相关推荐
shuxianshrng5 分钟前
大气网格化精细化监管监测系统
大数据·服务器·windows·经验分享
friklogff21 分钟前
【C#生态园】构建你的C#操作系统:框架选择与实践
服务器·开发语言·c#
TravisBytes27 分钟前
linux 系统是如何收发数据包
linux·运维·服务器
平头哥在等你2 小时前
《计算机网络名词解释》
服务器·网络·计算机网络
德迅--文琪2 小时前
SCDN是服务器吗?SCDN防御服务器有什么特点?
运维·服务器
ice___Cpu2 小时前
Linux 基本使用和 web 程序部署 ( 8000 字 Linux 入门 )
linux·运维·前端
z202305082 小时前
linux 之0号进程、1号进程、2号进程
linux·运维·服务器
秋已杰爱2 小时前
HTTP中的Cookie与Session
服务器·网络协议·http
code bean3 小时前
【C#基础】函数传参大总结
服务器·开发语言·c#
shelby_loo3 小时前
通过 Docker 部署 WordPress 服务器
服务器·docker·容器