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相关配置

css 复制代码
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

开机自启其他配置方式

相关推荐
qq_243050792 小时前
dnsmap:DNS枚举 详细完整教程 Kali Linux&Termux入门教程 黑客渗透测试 信息收集
linux·网络·安全·web安全·网络安全·系统安全·ddos
m0_748257185 小时前
海康威视摄像头RTSP使用nginx推流到服务器直播教程
运维·服务器·nginx
Pou光明5 小时前
1_linux系统网络性能如何优化——几种开源网络协议栈比较
linux·运维·网络·网络协议·开源
TianyaOAO6 小时前
inmp+discuz论坛
linux·运维·服务器
星光璀璨山河无恙6 小时前
【Linux】grep命令
大数据·linux
稳联技术7 小时前
科技潮头浪接天,一桥飞架两界连。EthernetIP转Profinet互译连
linux·服务器·网络
寰梦8 小时前
Docker(Nginx) 部署 uniapp
nginx·docker·uni-app
dessler8 小时前
vmware-esxi使用指南
linux·运维·云计算
明金同学9 小时前
腾讯云海外服务器Window切换为linux系统(从Window DD 到 Linux)
linux·服务器·腾讯云
CC大煊10 小时前
【Linux】vi/vim 使用技巧
linux·运维·vim