Nginx配置https(Ubuntu、Debian、Linux、麒麟)

Ubuntu操作系统,Debian系统底层是Ubuntu,差异不大

ubuntu 安装nginx

1.安装依赖

sudo apt-get update

sudo apt-get install gcc

sudo apt-get install libpcre3 libpcre3-dev

sudo apt-get install zlib1g zlib1g-dev

sudo apt-get install openssl libssl-dev

2.获取压缩包,解压,配置,安装

1、下载

wget https://nginx.org/download/nginx-1.21.6.tar.gz

2、解压

tar xvf nginx-1.21.6.tar.gz

3、切入到解压目录

cd nginx-1.21.6

4、配置https

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

5、编译:

make

6、安装

make install

nginx -V 查看是否有ssl模块

Nginx配置文件增加ssl相关配置

server {# xxxx平台服务listen       8211 ssl;server_name  localhost;# 引用正确的ssl证书和私钥(确保路径正确且文件存在)ssl_certificate      /home/zhqx/ssl/server.crt;  # 修正为.crt或.pem文件ssl_certificate_key  /home/zhqx/ssl/server.key;# 协议优化,仅允许安全的TLS版本和加密套件ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4:!RSA:!SHA1:!SHA256:!AES128-GCM;  # 排除一些较弱的加密套件ssl_prefer_server_ciphers  on;# 启用HSTS(HTTP Strict Transport Security),增强安全性add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";# 防止点击劫持和跨站脚本(XSS)攻击add_header X-Frame-Options SAMEORIGIN;add_header X-Content-Type-Options nosniff;add_header X-XSS-Protection "1; mode=block";# 内容安全策略(CSP),限制资源加载来源add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self' *; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:;";# 记录访问日志(可选,根据需求开启或关闭)# access_log  /var/log/nginx/sms_access.log  main;# error_log   /var/log/nginx/sms_error.log  warn;location / {root   /home/zhqx/sms/dist;index  index.html index.htm;try_files $uri $uri/ /index.html;  # 对于单页应用(SPA),确保所有路由都返回index.html}location /api {proxy_set_header        Host $http_host;proxy_set_header        X-Real-IP $remote_addr;proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header        X-Forwarded-Proto $scheme;  # 添加以传递协议信息(http/https)proxy_pass              http://ip:8092/xxx/api/v1;proxy_next_upstream     error timeout invalid_header http_500 http_502 http_503 http_504;  # 在后端服务器出错时尝试下一个服务器(如果配置了多个后端)proxy_cache_bypass      $http_upgrade;  # 对于WebSocket连接,不缓存响应}# 错误页面处理error_page 401 403 404 500 502 503 504 /custom_50x.html;location = /custom_50x.html {root   /home/zhqx/sms/error_pages;  # 指定错误页面的目录internal;  # 确保这个页面只能由Nginx内部调用}}

麒麟操作系统&Linux 安装使用yum

操作相差无几!

遇到的问题:

1:nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)

分析:

        麒麟操作系统,我在/usr/local 路径下编译安装的,但是提示这个错误!

解决:

        将nginx安装到/etc/nginx下,同时修改权限chmod 777 /etc/nginx

2:nginx: [emerg] open() "/etc/nginx/mime.types" failed (2: No such file or directory) in /etc/nginx/nginx.conf:19

分析:

        缺少mime.types文件,从网上下载一个

解决:

         sudo curl -o /etc/nginx/mime.types https://hg.nginx.org/nginx/raw-file/default/conf/mime.types

参考:
 

第一步:下载nginx压缩包
        去nginx官网下载 https://nginx.org/en/download.html

也可以直接使用wget命令下载,指令如下所示(请根据自己的需求进行下载):

建议选择官网发布的稳定版本

用命令下载时,要在自己需要下载的目录进行操作 我这里在 /home/docs/nginx 下

wget -c https://nginx.org/download/nginx-1.10.1.tar.gz


第二步:配置nginx安装所需的环境


1.安装gcc


安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。安装指令如下:

yum install gcc-c++


2. 安装PCRE pcre-devel


Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。安装指令如下:

yum install -y pcre pcre-devel 
 

3.安装zlib


zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。安装指令如下:

yum install -y zlib zlib-devel
 


4.安装Open SSL


nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https,需要安装 OpenSSL 库。安装指令如下:

yum install -y openssl openssl-devel
 


第三步:解压nginx压缩包并安装
 

tar -zxvf nginx-1.10.1.tar.gz
解压之后,当前目录会出现一个被解压过的目录,如上图所示。

使用./configure命令来配置编译选项,如下图所示:

cd /home/docs/nginx/nginx-1.10.1
 
./configure


注意:如果需要支持https,不要直接执行 ./configure ----------------不需要忽略此命令

使用如下命令代替

./configure --with-http_ssl_module
 
--with-http_ssl_module 的意思是添加https支持
 


第四步:编译安装nginx


这里和redis的编译安装比较类似,首先在当前目录/home/docs/nginx/nginx-1.10.1进行编译。输入make即可

make
 
然后回车,如果编译出错,请检查是否前面的4个安装都没有问题。
编译成功之后,就可以安装了,输入以下指令:

make install
 
ok,安装成功。

这时会在 /usr/local/ 目录下生成一个 nginx 目录

第五步:启动nginx


以下对nginx的操作都需要进入到 /usr/local/nginx/sbin目录下执行

进入/usr/local/nginx/sbin目录,输入./nginx即可启动nginx

cd /usr/local/nginx/sbin
 
./nginx
 
关闭nginx

./nginx -s quit  或者 ./nginx -s stop
 
重启nginx

./nginx -s reload
 
查看nginx进程

ps aux|grep nginx
 
设置nginx开机启动,只需在rc.local增加启动代码即可。(这种方式好像不推荐使用)

vim /etc/rc.local
 
还需要下列命令 否则开机自启不生效

chmod +x /etc/rc.d/rc.local
 

开机自启其他配置方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/63109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【优选算法 二分查找】二分查找入门详解:二分查找 & 在排序数组中查找元素的第一个和最后一个位置

二分查找 题目描述 题目解析 暴力解法 我们可以从左往右遍历一次数组,如果存在 target 则返回数组的下标,否则返回 -1; 时间复杂度 O(N),因为没有利用数组有序的特点,每次比较只能舍弃一个要比较的数&…

Linux镜像文件制作

本文介绍Linux镜像文件制作。 嵌入式系统开发调试及量产需要涉及到Linux镜像文件的制作,本文结合一个实例简要介绍Linux镜像文件的制作。 1.确定磁盘空间布局 在制作镜像文件之前应提前确定好磁盘空间布局,也就是地址空间划分,如这里的磁盘…

时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式 基本介绍 时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x x(1:5120); % 本数据只选择5120个点进行分析 fs 6400 ; % 数据采样频…

vue3 vite ts day1

创建项目: npm init vitelatest 来创建项目 第二布: y 第三步:project name :项目名称 第四步:select a framework 选择框架 熟悉那种选择那种,当前选择vue 第五步:select a variant&…

elasticsearch-7.14.0集群部署+kibana

1、修改系统参数 用户对软件的内存和硬盘使用权限 vim /etc/security/limits.conf * soft nproc 655350 * soft nofile 655350 * hard nproc 655350 * hard nofile 655350修改最大线程数 vim /etc/sysctl.conf vm.max_map_count262144配置用户最大的线程数 vim /etc/security/…

深度学习 | pytorch + torchvision + python 版本对应及环境安装

Hi,大家好,我是半亩花海。要让一个基于 torch 框架开发的深度学习模型正确运行起来,配置环境是个重要的问题,本文介绍了 pytorch、torchvision、torchaudio 及 python 的对应版本以及环境安装的相关流程。 目录 一、版本对应 二…

如何学习游戏外挂编程

学习游戏外挂编程需要掌握一定的编程基础和相关知识。以下是一些学习游戏外挂编程的步骤和建议: 学习编程基础:首先,你需要学习一种编程语言,比如C或者Python。了解基本的编程概念,如变量、函数、循环和条件语句等。这…

LearnOpenGL学习(高级OpenGL -- 深度测试,模板测试,)

深度测试 深度缓冲用来防止被阻挡的面渲染到其他面的前面,深度缓冲就像颜色缓冲,在每个片段中储存了信息, 当深度测试(Depth Testing)被启用的时候,OpenGL会将一个片段的深度值与深度缓冲的内容进行对比。OpenGL会执行一个深度测…

MYSQL REPLACE INTO, INSERT IGNORE ON DUPLICATE 区别:

REPLACE INTO 不存在插入,存在删除旧的数据,插入一条新数据,返回新插入的自动编号: replace into:和 ignore 以及 duplicate 截然不同,不存在插入,存在则删除旧的,插入新的。不会保…

4. 设计模式分类

4.1 创建型模式 这类模式提供创建对象的机制,能够提升已有代码的灵活性和可复用性。 序 号 类 型 业务场景 实现要点 1 工 厂 方 法 多种类型商品不同接口,统一发奖服 务搭建场景 定义一个创建对象的接口,让其子类自 己决定实例化哪一个工厂类,工厂模式 使其创建过程延迟…

【JS】一些奇怪的野生方法(持续更新...)

文章目录 一、样式类二、API类三、一些属性四、一些奇怪但常用的功能 一、样式类 屏幕的可用高度:window.screen.availHeight 二、API类 获取绝对值:Math.abs(aaa)stopPropagation():阻止事件在DOM树中继续冒泡(就是停止事件&a…

Java 反射:强大而灵活的魔法工具

一、什么是 Java 反射 Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。反射的本质是得到 Class 对象后,反向获取 Class 对象的各…

3大模块助力学生会视频自动评审系统升级

一、项目背景 传统的学生会视频作品或电子申请材料评审由老师线下逐一面审完成。面对大量学生提交的作品,评审效率低、耗时长,且主观性较强。为此,客户希望开发一个基于AI的线上自动面审系统,从语法正确性、演讲流利度和发音准确…

8. 一分钟读懂“代理模式”

8.1 模式介绍 代理模式是一种结构型设计模式,它通过提供一个代理对象来替代对另一个对象(真实对象)的访问。代理对象与真实对象实现相同的接口,并通过代理类对真实对象的访问进行控制,可以在调用前后执行附加操作&…

计算机网络学习资料全攻略

计算机网络是计算机科学中一个非常重要的分支,它涉及到数据在计算机系统之间的传输和通信。随着互联网的快速发展,对计算机网络知识的掌握变得越来越重要。本文将为您提供一份全面的计算机网络学习资料指南,帮助您从基础到高级逐步深入学习。…

<component> 标签 动态响应无法实现

【无法解决的问题&#xff0c;尤其是前端&#xff0c;多看官方文档&#xff0c;先查博文再看文档】 如果在 <component> 标签上使用 v-model&#xff0c;模板编译器会将其扩展为 modelValue prop 和 update:modelValue 事件监听器&#xff0c;就像对任何其他组件一样。但…

Python的秘密基地--[章节2]Python核心数据结构

第2章&#xff1a;Python核心数据结构 Python中的数据结构提供了强大的工具来存储和操作数据。理解这些数据结构是Python编程的基础。 2.1 列表&#xff08;List&#xff09; 2.1.1 什么是列表 列表是一种有序的可变序列&#xff0c;用于存储一组数据。它支持多种类型的数据…

4.Vue-------this.$set()的使用和详细过程-------vue知识积累

在Vue.js中&#xff0c;this.$set()是Vue实例this.someProperty someValue来为Vue实例的属性赋值时&#xff0c;Vue会自动将该属性设置为响应式的&#xff0c;这样当属性的值变化时&#xff0c;相关的视图会自动更新 一. 对象的修改 对象&#xff1a;修改和新增 先定义数据对…

怎么自己创建一个网站? 开发语言首选 java,使用CMS网站内容管理系统是不错的选择

怎么自己创建一个网站 推荐使用 Java CMS 网站内容管理系统&#xff0c;根据网站规划的功能模块&#xff0c;创建不同的页面风格&#xff1b; 文章目录 怎么自己创建一个网站一、规划网站1.1确定网站主题和目的1.2规划网站结构和内容 二、注册域名2.1选择域名注册商2.2 查找并…

tcpreplay/tcpdump-重放网络流量/捕获、过滤和分析数据包

tcpdump 是一个网络数据包分析工具&#xff0c;通过捕获并显示网络接口上传输的数据包&#xff0c;帮助用户分析网络流量。 原理&#xff1a;用户态通过 libpcap 库控制数据包捕获&#xff0c;内核态通过网卡驱动获取数据包。 核心功能包括&#xff1a;捕获、过滤和分析数据包…