【Linux】云服务器Centos 7安装nginx,设置二级域名转发端口

2023-05-16

这里写目录标题

  • 一、 Nginx 安装
    • 1.1 安装Nginx
    • 1.2 使用
    • 1.3 自启动配置
  • 二、Nginx详细
    • 2.1 相关命令
    • 2.2 二级域名转发
  • 三、 SSL配置
    • 3.1 确保Nginx安装了SSL模块
    • 3.2 下载证书
    • 其它

一、 Nginx 安装

1.1 安装Nginx

下载网址为http://nginx.org/en/download.html,如下当前稳定版为1.22.1,可以直接下载上传

在这里插入图片描述
也可以输入wget http://nginx.org/download/nginx-1.22.1.tar.gz下下载下来

#解压
tar -zxvf nginx-1.22.1.tar.gz
#进入目录
cd ./nginx-1.22.1
#配置,`--with-http_ssl_module`为创建ssl 将可以部署https,不填也可以但后期无法部署https
./configure --prefix=/usr/local/nginx --with-http_ssl_module
#编译
make
make install

1.2 使用

#启动
/usr/local/nginx/sbin/nginx
#重新加载配置
/usr/local/nginx/sbin/nginx -s reload
#停止
/usr/local/nginx/sbin/nginx -s stop

启动后可以输入网址不加端口将显示如下:
在这里插入图片描述

1.3 自启动配置

先将服务停止,然后进行如下步骤
执行vim /etc/systemd/system/nginx.service,填写如下内容

[Unit]
Description=The Nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

执行systemctl enable nginx设置开机自启动
执行systemctl start nginx 启动
执行systemctl stop nginx 停止nginx

二、Nginx详细

默认配置文件位置为 /usr/local/nginx/conf/nginx.conf
参考链接https://www.cnblogs.com/54chensongxia/p/12938929.html

2.1 相关命令

/usr/local/nginx/sbin/nginx -t 查看配置文件路径

2.2 二级域名转发

例如我有个a应用,该应用部署在10086号端口,我的域名为abc.com
如果不设置二级域名将只能通过abc.com:10086访问
如果设置二级域名可以输入a.abc.com进行访问

想达到这种二级域名访问指定端口应用程序的效果可以使用两种方式

  1. 设置dns解析,找到域名提供商,例如腾讯云可以添加一条解析记录,主机记录填a记录类型选择隐形URL或者显性URL,记录值填http://abc.com:10086,这样就实现了二级域名访问,但这种方式有缺陷,如果是隐形URL,获取到的网页将会以fram的形式插入到a.abc.com,网页的图标可能显示异常,如果是显性URL,将会通过重定向到abc.com:10086,url地址栏也会进行显示
  2. 通过nginx配置,
    执行vi /usr/local/nginx/conf/nginx.conf,在nginx配置文件中添加下面一段即可,注意位置
    http {
        # 此处省略一些配置
        ...
        # 二级域名 
        server {
    	    listen 80;
    	    server_name a.abc.com;
    	    location / {
    	        proxy_set_header X-Real-IP $remote_addr;
    	        proxy_set_header Host $http_host;
    	        proxy_pass http://127.0.0.1:10086;
    	    }
    	# 可以存在多个server
        server{
    		....省略
    	}
    }
    

三、 SSL配置

3.1 确保Nginx安装了SSL模块

执行/usr/local/nginx/sbin/nginx -V,显示如下

nginx version: nginx/1.22.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module

3.2 下载证书

点击https://console.cloud.tencent.com/ssl进入ssl控制台先申请免费证书,申请后点击如下下载,选择nginx
在这里插入图片描述
下载下来解压将有下面四个文件
在这里插入图片描述
将其中bundle.crt和.key结尾的两个文件上传至服务器放在/usr/local/nginx/conf/cert下没有cert目录要在conf先创建
执行 vi /usr/local/nginx/conf/nginx.conf将其中HTTPS配置的注释去掉,并替换域名,两个文件的路径,如下图所示
在这里插入图片描述

    server {
        listen       443 ssl;
        server_name  域名;

        ssl_certificate      cert/域名_bundle.crt;
        ssl_certificate_key  cert/域名.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

执行 systemctl restart nginx.service重启服务即可,注意服务器要开放对应443端口,并且dns解析新建好记录,记录值为服务器ip即可,输入https加域名将得到安全访问,如下图所示,若更改应用位置可参考二级域名配置更改location
在这里插入图片描述
多个域名,例如a.abc.com,b.abc.com,每个域名一个ssl证书按如上安装即可

其它

使用https时,flask返回流内容时将失效,具体表现为ChatGPT web项目中使用https后将不会逐字动态显示,原因是nginx的缓存策略导致的,可在对应server的配置中添加如下禁用缓存

        proxy_buffering off;
        proxy_request_buffering off;

记录 :
博客启动时指定端口
nohup java -jar blog-0.0.1-SNAPSHOT.jar --server.port=5001 > web.log 2>&1 &

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Linux】云服务器Centos 7安装nginx,设置二级域名转发端口 的相关文章

  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • 为什么我需要 Nginx 和 Puma?

    我正在将 Rails 应用程序部署到生产环境中 看起来 Puma 速度很快 可以处理我想要在网络服务器中完成的许多事情 我想知道我是否需要使用 Nginx 如果只使用 Puma 我会错过什么 Nginx 是一个 Web 服务器 puma 是
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 如何使用 Nginx 将下划线替换为破折号

    我第一次使用Nginx 对它基本上一无所知 我需要将 100 多个 URL 中的 替换为 我想一定有一种简单的方法可以用 Nginx 来做到这一点 但在 Google 上找不到任何东西 Thanks Edit 我的网址例如 http www
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 获取请求的客户端 IP 地址而不是 Cloudflare 的 IP 地址

    Cloudflare 会更改传入请求的 IP 地址 因为 Cloudflare 是我的网站和互联网之间的中间件 代理 我该怎么办获取请求的初始IP地址 而不是 Cloudflare 的 IP 地址 我听说过mod cloudflare但是这
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • 如何在 Mac OSX Mavericks 中正确运行字符串工具?

    如何在 Mac OSX Mavericks 中正确运行字符串工具 我尝试按照我在网上找到的示例来运行它 strings a UserParser class 但我收到此错误 错误 Applications Xcode app Content
  • 检查已安装的软件包,如果没有找到则安装

    我需要检查已安装的软件包 如果未安装则安装它们 RHEL CentOS Fedora 示例 rpm qa grep glibc static glibc static 2 12 1 80 el6 3 5 i686 如何在 BASH 中进行检
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • Linux下显卡内存使用情况

    Linux下有哪些工具可以监控显卡内存使用情况 NVIDIA 性能套件 http developer nvidia com content nvidia perfkit有Linux版本 可以实时监控各种显卡属性 包括显卡内存使用情况 显然
  • 如何在shell脚本中给出密码?

    在 shell 脚本文件中 我使用一些命令 例如scp and make install要求我输入密码 我运行一个 shell 脚本来编译一个大项目 一段时间后它会要求我输入密码才能使用scp 我需要等待该过程并在此之后提供密码 我只想通过
  • 在 scp 的简单函数包装中使用波形符 ~ 时出现问题

    我想放置一个简单的bash功能在我的 bashrc围绕着scp通过接受 源 参数和 目标 参数来命令 到目前为止已经尝试过 function send eval scp 1 user annoyingly long server name
  • 为 OpenWrt 编写和编译程序

    我有一个在 OpenWRT 下运行的具有 MIPS 架构的嵌入式设备 系统类型 MediaTek MT7628AN ver 1 eco 2机器 WRTnode2P 处理器 0CPU型号 MIPS 24KEc V5 5 我想通过我的电脑 ub

随机推荐

  • css面试题----css测试9

    每个星期6都会去去看张鑫旭直播写一些小demo然后再去吧写每天学习到的东西 xff0c 心得记下来 xff0c 并且会长期去完成这个任务 IT这个东西真的是要去强迫自己学学习一些好的东西 xff0c 多去优化代码 xff0c 而不是去停滞不
  • css面试题----DOM基础测试34

    这个其实是上上个星期张鑫旭直播的内容 xff0c 我吧我不会的内容总结一下 xff0c 从而来分享给大家 题目 第一问 document querySelectorAll 39 a 39 第二问 1 有bug当有这个href属性但没属性值
  • fon in 和 for of 的区别

    for 循环 其实他一般情况下是根据数组 xff0c 类数组的length的属性值去循环 for in 一般的作用是枚举把key枚举出来 xff0c 但是当我们枚举数组 xff0c 或者字符串的时候会把原型上的方法枚举出来 Object p
  • 词云图wordcloud学习笔记

    词云图 也叫文字云 是对文本中出现频率较高的 关键词 予以视觉化的展现 词云图过滤掉大量的低频低质的文本信息 使得浏览者只要一眼扫过文本就可领略文本的主旨 github https github com amueller word clou
  • ++a-a++解析

    有题目当a为1的时候 43 43 a a 43 43 为多少答案为0 我们再输出a这个时候a等于3 为什么呢 xff1f 运算顺序 前置递增 减 大于 数字运算和后置递增 减 大于 比较 布 大于 逻辑 或 且 大于 赋值 好当我们把运算顺
  • sync修饰符的使用

    为什么使用sync 再vue中官网的介绍 xff1a 我们可能需要对一个 prop 进行 双向绑定 不幸的是 xff0c 真正的双向绑定会带来维护上的问题 xff0c 因为子组件可以修改父组件 xff0c 且在父组件和子组件都没有明显的改动
  • vue中 methods computed watch filters区别

    在vue中事件 xff0c 计算属性 xff0c 帧听器 xff0c 过滤器的区别 其实共同点 xff1a 修改数据 事件methods和计算属性computed 作用 xff1a 对数据进行逻辑运算 区别 计算属性是基于它们的响应式依赖进
  • 前端面试题----js基础测试35

    得分 这个题目总共8分的我只有3分 xff0c 但是说实话我写这个题目的时候信心爆棚 xff0c 我觉得我自己应该是写出来的的 xff0c 但是可惜 解析 第一题 正解 xff1a 1 encodeURI 函数假设参数是完整的 URIs x
  • 前端面试题----DOM测试35

    得分 这个题目8分我5分 重新复习 HTML lt form id 61 34 loginForm 34 action 61 34 account login 34 method 61 34 POST 34 gt lt p gt 账号 xf
  • 前端小测---css基础测试10

    得分 总共8分得了6分有一个背景样式没处理好 重点 无js使用details和summary组合动画处理 xff0c 使用max height 0来过渡 HTML lt div class 61 34 container 34 gt lt
  • 前端小测试---- 图片上传

    得分 8分我自己得了4分 第一问 xhr onprogress和xhr upload onprogress的区别 xff1a 这两个都能显示进度百分比 xff0c 但是 xff0c 前者显示的是服务器返回的数据 xff0c 后者是发送给服务
  • js 部分代码注释规范

    普通注释 单行 单行注释 文字和 有一个空格 多行 多行注释 1 总是再多行注释的结束符前留一个空格 使星号对齐 2 不要把注释写再多行注释的开始符 xff0c 和结束符所在行 文档注释 Core模块提供最基础 最核心的接口 文档说明 64
  • js代码优化

    原文 xff1a https dmitripavlutin com unlearn javascript bad coding habits 一 xff1a 不要使用隐式类型转换 大多数运算符 43 61 61 不包括 61 61 61 再
  • Python爬虫基础(一) —— 基本爬虫库的使用

    文章目录 使用urllib库使用request模块发送请求1 使用urlopen urlopen data参数urlopen timeout参数 2 Request 3 高级用法验证代理Cookies 使用error模块处理异常1 URLE
  • Django使用websocket实现实时消息推送和聊天

    websocket简介 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 WebSocket 使得客户端和服务器之间的数据交换变得更加简单 允许服务端主动向客户端推送数据 在 WebSocket
  • word 使用域对公式进行编号

    需要的快捷键 xff1a alt 43 F9 切换为域代码编辑模式 ctrl 43 A 选中所有再点F9进行域更新 在公式最后面加 1 再回车 xff0c 生成靠右的编号 点中1 的右侧 xff0c 插入 gt 文档部件 gt 域 gt 如
  • 【Linux】(一)深度学习环境多用户共用,配置共用cuda anaconda pycharm,vnc4server创建多用户虚拟xfce桌面

    深度学习环境共用配置 系列文章 一 写在前面问题方法简介 首次配置说明1 新建用户2 安装cuda3 安装anaconda3及pycharm 1 上传安装文件 2 安装anaconda3 3 安装pycharm 4 安装VNC服务所需资源5
  • 【Java】购买腾讯云服务器,并部署Spring boot项目,再到部署自己的个人博客,域名备案,安全连接配置

    云服务器部署 一 购买腾讯云服务器二 简单配置2 1 进入控制台2 2 配置防火墙2 3 配置访问密码 三 远程ssh登录连接服务器四 云服务器安装软件4 1 安装JDK4 2 安装MySql4 2 安装Redis 五 Spring boo
  • 【Linux】腾讯云服务器,使用FRP内网穿透,端口映射,远程访问内网主机、代理内网

    FRP内网穿透 一 需求分析1 1 情况1 2 需求1 3 解决方案 二 云服务器开放端口访问2 1 进入控制台2 2 配置防火墙 三 安装FPR3 1 限定3 2 云服务器 服务端 安装FPR3 3 局域网内机器 客户端 安装FPR 四
  • 【Linux】云服务器Centos 7安装nginx,设置二级域名转发端口

    这里写目录标题 一 Nginx 安装1 1 安装Nginx1 2 使用1 3 自启动配置 二 Nginx详细2 1 相关命令2 2 二级域名转发 三 SSL配置3 1 确保Nginx安装了SSL模块3 2 下载证书其它 一 Nginx 安装