【Linux】Nginx配置域名+https&一个地址配置多个项目【项目实战】

【Linux】Nginx配置域名+https&一个地址配置多个项目【项目实战】
👨‍🎓博主简介

🏅ZEEKLOG博客专家
🏅云计算领域优质创作者
🏅华为云开发者社区专家博主
🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗

文章目录

在这里插入图片描述

前言

要使用https,二进制安装编译时需要添加这些参数--with-threads --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_v2_module --with-http_realip_module --with-file-aio

./configure --prefix=/usr/local/nginx --with-threads --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_v2_module --with-http_realip_module --with-file-aio 
参数作用
--with-threads启用线程池(异步文件IO)
--with-http_ssl_moduleSSL/TLS支持(HTTPS必需)
--with-http_gzip_static_module预压缩静态文件(.gz直接发送)
--with-http_stub_status_module状态监控页(/nginx_status)
--with-http_v2_moduleHTTP/2协议支持
--with-http_realip_module获取真实IP(CDN场景)
--with-file-aio异步文件IO(大文件)

域名+https配置单个项目

①、首先将项目移动到html下;
②、将ssl证书移动到目的地;
③、然后进行nginx配置;

Nginx配置文件完整代码展示(主要在server段):

#user root; worker_processes 1; events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65;gzip on; gzip_vary on; gzip_types text/plain text/css application/json application/javascript; server { listen 80; server_name test.top www.test.top;# HTTP 重定向到 HTTPSreturn301 https://$server_name$request_uri;# 这里不需要配置local内容,会自动跳转到https,如果证书到期也会跳转,不依赖443;} server { listen 443 ssl http2; server_name test.top www.test.top;# SSL 配置 ssl_certificate /usr/local/nginx/conf/ssl/test.top.pem; ssl_certificate_key /usr/local/nginx/conf/ssl/test.top.key;# 会话缓存 ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m;# 协议与加密套件# 解决的目标主机支持RSA密钥交换、目标使用过期的TLS1.0 版协议两个漏洞 ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';# 安全响应头 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff";# OCSP Stapling ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 114.114.114.114 valid=300s; resolver_timeout 5s;# 设置错误页面 error_page 404 /404.html; error_page 500502503504 /50x.html; location = /404.html { root /usr/local/nginx/html; internal;}# 如果是自定义404需要找图片,需要加上这个; location /404/ { root /usr/local/nginx/html;} location = /50x.html { root /usr/local/nginx/html; internal;} location / {# 写上项目地址 root html/blog_dist; index index.html index.htm; expires 30d;# 缓存 30 天 add_header Cache-Control "public, immutable";# 明确缓存语义# 关键:HTML不缓存(防更新后用户看到旧版) location ~* \.html$ { expires -1; add_header Cache-Control "no-cache";}}}}

这样页面访问时就可以是:https://test.top/

域名+https配置多个项目

①、首先将项目移动到html下;
②、将ssl证书移动到目的地;
③、然后进行nginx配置;

Nginx配置文件完整代码展示(主要在server段):

#user root; worker_processes 1; events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; sendfile on;#tcp_nopush on;#keepalive_timeout 0; keepalive_timeout 65;#gzip on; server { listen 80; server_name test.top www.test.top;# HTTP 重定向到 HTTPSreturn301 https://$server_name$request_uri;# 这里不需要配置local内容,会自动跳转到https,如果证书到期也会跳转,不依赖443;} server { listen 443 ssl http2; server_name test.top www.test.top;# SSL 配置 ssl_certificate /usr/local/nginx/conf/ssl/test.top.pem; ssl_certificate_key /usr/local/nginx/conf/ssl/test.top.key;# 会话缓存 ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m;# 协议与加密套件# 解决的目标主机支持RSA密钥交换、目标使用过期的TLS1.0 版协议两个漏洞 ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';# 安全响应头 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff";# OCSP Stapling ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 114.114.114.114 valid=300s; resolver_timeout 5s;# 设置错误页面 error_page 404 /404.html; error_page 500502503504 /50x.html; location = /404.html { root /usr/local/nginx/html; internal;}# 如果是自定义404需要找图片,需要加上这个; location /404/ { root /usr/local/nginx/html;} location = /50x.html { root /usr/local/nginx/html; internal;}# 项目1(默认) location / { root /usr/local/nginx/html/project1; try_files $uri$uri/ /index.html;}# 项目2 location /p2 {alias /usr/local/nginx/html/project2; try_files $uri$uri/ =404;}# 项目3 location /p3 {alias /usr/local/nginx/html/project3; try_files $uri$uri/ =404;}}}

这样页面访问时就可以是:https://test.top/https://test.top/p2/https://test.top/p3/

域名不加https配置多个项目

①、首先将项目移动到html下;
②、然后进行nginx配置;

Nginx配置文件完整代码展示(主要在server段):

#user root; worker_processes 1; events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; sendfile on;#tcp_nopush on;#keepalive_timeout 0; keepalive_timeout 65;#gzip on; server { listen 80; server_name test.top www.test.top;# 设置错误页面 error_page 404 /404.html; error_page 500502503504 /50x.html; location = /404.html { root /usr/local/nginx/html; internal;}# 如果是自定义404需要找图片,需要加上这个; location /404/ { root /usr/local/nginx/html;} location = /50x.html { root /usr/local/nginx/html; internal;}# 项目1(默认) location / { root /usr/local/nginx/html/project1; try_files $uri$uri/ /index.html;}# 项目2 location /p2 {alias /usr/local/nginx/html/project2; try_files $uri$uri/ =404;}# 项目3 location /p3 {alias /usr/local/nginx/html/project3; try_files $uri$uri/ =404;}}}

这样页面访问时就可以是:http://test.top/http://test.top/p2/http://test.top/p3/

本机地址配置多个项目

本机地址配置多个项目这个其实和一个域名配置多个项目是一样的,只不过把server_name的域名换成localhost就行。

具体操作如下:

①、首先将项目移动到html下;
②、然后进行nginx配置;

Nginx配置文件完整代码展示(主要在server段):

 user root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; # 设置错误页面 error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /404.html { root /usr/local/nginx/html; internal; } # 如果是自定义404需要找图片,需要加上这个; location /404/ { root /usr/local/nginx/html; } location = /50x.html { root /usr/local/nginx/html; internal; } # 项目1(默认) location / { root /usr/local/nginx/html/project1; try_files $uri $uri/ /index.html; } # 项目2 location /p2 { alias /usr/local/nginx/html/project2; try_files $uri $uri/ =404; } # 项目3 location /p3 { alias /usr/local/nginx/html/project3; try_files $uri $uri/ =404; } } } 

这样页面访问的是时候就可以是:ip/ip/p2/ip/p3/

推荐一个优化nginx配置文件的页面:Nginx配置文件格式化

这里面还有很多格式化工具可以自己看看:https://tool.okcode.vip/

Nginx 404页面美化:Nginx 404页面美化

相关文章

文章标题文章连接
【Linux】nginx基础篇 – 介绍及yum安装nginxhttps://liucy.blog.ZEEKLOG.net/article/details/133928000
【Linux】环境下部署Nginx服务 - 二进制部署方式https://liucy.blog.ZEEKLOG.net/article/details/132145067
nginx配置负载均衡–实战项目(适用于轮询、加权轮询、ip_hash)https://liucy.blog.ZEEKLOG.net/article/details/133986013
nginx快速部署一个网站服务 + 多域名 + 多端口https://liucy.blog.ZEEKLOG.net/article/details/133986102
【Linux】Nginx一个域名https&一个地址配置多个项目【项目实战】https://liucy.blog.ZEEKLOG.net/article/details/144442148

相关专栏

❀《Linux从入门到精通》专栏 ❀❀《Nginx》专栏 ❀
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗

Read more

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 作者:高瑞冬 本文目录 * AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 * 一、MCP协议简介 * 二、创建MCP工具集 * 1. 获取MCP服务地址 * 2. 在FastGPT中创建MCP工具集 * 三、测试MCP工具 * 四、AI模型调用MCP工具 * 1. 调用单个工具 * 2. 调用整个工具集 * 五、私有化部署支持 * 1. 环境准备 * 2. 修改docker-compose.yml文件 * 3. 修改FastGPT配置 * 4. 重启服务 * 六、使用MCP-Proxy集成多个MCP服务 * 1. MCP-Proxy简介 * 2. 安装MCP-Proxy * 3. 配置MCP-Proxy * 4. 将MCP-Proxy与FastGPT集成 * 5. 高级配置

By Ne0inhk
【大模型实战篇】基于Claude MCP协议的智能体落地示例

【大模型实战篇】基于Claude MCP协议的智能体落地示例

1. 背景         之前我们在《MCP(Model Context Protocol) 大模型智能体第一个开源标准协议》一文中,介绍了MCP的概念,虽然了解了其概念、架构、解决的问题,但还缺少具体的示例,来帮助进一步理解整套MCP框架如何落地。         今天我们基于claude的官方例子--获取天气预报【1】,来理解MCP落地的整条链路。 2. MCP示例         该案例是构建一个简单的MCP天气预报服务器,并将其连接到主机,即Claude for Desktop。从基本设置开始,然后逐步发展到更复杂的使用场景。         大模型虽然能力非常强,但其弊端就是内容是过时的,这里的过时不是说内容很旧,只是表达内容具有非实时性。比如没有获取天气预报和严重天气警报的能力。因此我们将使用MCP来解决这一问题。         构建一个服务器,该服务器提供两个工具:获取警报(get-alerts)和获取预报(get-forecast)。然后,将该服务器连接到MCP主机(在本例中为Claude for Desktop)。         首先我们配置下环

By Ne0inhk
基于腾讯云HAI + DeepSeek快速设计自己的个人网页

基于腾讯云HAI + DeepSeek快速设计自己的个人网页

前言:通过结合腾讯云HAI 强大的云端运算能力与DeepSeek先进的 AI技术,本文介绍高效、便捷且低成本的设计一个自己的个人网页。你将了解到如何轻松绕过常见的技术阻碍,在腾讯云HAI平台上快速部署DeepSeek模型,仅需简单几步,就能获取一个包含个人简介、技能特长、项目经历及联系方式等核心板块的响应式网页。 目录 一、DeepSeek模型部署在腾讯云HAI 二、设计个人网页 一、DeepSeek模型部署在腾讯云HAI 把 DeepSeek 模型部署于腾讯云 HAI,用户便能避开官网访问限制,直接依托腾讯云 HAI 的超强算力运行 DeepSeek-R1 等模型。这一举措不仅降低了技术门槛,还缩短了部署时间,削减了成本。尤为关键的是,凭借 HAI 平台灵活且可扩展的特性,用户能够依据自身特定需求定制专属解决方案,进而更出色地适配特定业务场景,满足各类技术要求 。 点击访问腾讯云HAI控制台地址: 算力管理 - 高性能应用服务 - 控制台 腾讯云高性能应用服务HAI已支持DeepSeek-R1模型预装环境和CPU算力,只需简单的几步就能调用DeepSeek - R1

By Ne0inhk
AI革命先锋:DeepSeek与蓝耘通义万相2.1的无缝融合引领行业智能化变革

AI革命先锋:DeepSeek与蓝耘通义万相2.1的无缝融合引领行业智能化变革

云边有个稻草人-ZEEKLOG博客 目录 引言 一、什么是DeepSeek? 1.1 DeepSeek平台概述 1.2 DeepSeek的核心功能与技术 二、蓝耘通义万相2.1概述 2.1 蓝耘科技简介 2.2 蓝耘通义万相2.1的功能与优势 1. 全链条智能化解决方案 2. 强大的数据处理能力 3. 高效的模型训练与优化 4. 自动化推理与部署 5. 行业专用解决方案 三、蓝耘通义万相2.1与DeepSeek的对比分析 3.1 核心区别 3.2 结合使用的优势 四、蓝耘注册流程 五、DeepSeek与蓝耘通义万相2.1的集成应用 5.1 集成应用场景 1. 智能医疗诊断

By Ne0inhk