• 关于nginx配置文件


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 星辰儿啊 2024-04-25 16:59 采纳率: 43.9% 浏览 4 首页/ PHP / 关于nginx配置文件 nginx 宿主机:centos7.9部署:用的docker 目前部署的后端接口服务:http://477.680.159.2:5001 前端的html文件放在nginx默认目录:/usr/share/nginx/html 域名:xlfdrj.cn 证书以及路径:/etc/nginx/ssl/www.xlfdrj.cn.pem/etc/nginx/ssl/www.xlfdrj.cn.key 现在通过ip是可以访问的,但是通过https的形式访问不了,域名和证书都申请好了, 辛苦帮我看一下nginx配置文件应该怎么写,然后通过https可以访问,我想用docker部署nginx,辛苦帮我写一些nginx配置文件 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    3条回答 默认 最新

    • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-25 16:59
      关注

      引自免费微信小程序:皆我百晓生

      根据您的需求,我将为您提供一个详细的Nginx配置示例。首先,您需要在Docker容器内创建一个新的Nginx配置文件,并将其与Nginx主配置文件关联起来。这里是一个步骤分解:

      1. 在您的本地机器上编辑一个名为default.conf的新文件,内容如下:
      server {
          listen 80;
          server_name xlfdrj.cn;
          return 301 https://$host$request_uri;
      }
      
      server {
          listen 443 ssl;
          server_name xlfdrj.cn;
      
          ssl_certificate /etc/nginx/ssl/www.xlfdrj.cn.pem;
          ssl_certificate_key /etc/nginx/ssl/www.xlfdrj.cn.key;
      
          location / {
              proxy_pass http://477.680.159.2:5001;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
      }
      

      这个配置文件包含两个部分:

      • 第一个server块监听HTTP请求(端口80),并自动重定向到HTTPS。
      • 第二个server块监听HTTPS请求(端口443),并且设置了SSL证书和密钥的位置,还定义了反向代理到您的后端服务。
      1. 将此文件复制到您的Docker镜像中。例如,如果您使用的是官方的Nginx镜像,您可以创建一个新的Dockerfile,如下所示:
      FROM nginx:latest
      
      COPY default.conf /etc/nginx/conf.d/default.conf
      

      这会从构建上下文中复制default.conf到Docker镜像中的正确位置。

      1. 构建Docker镜像:
      docker build -t your-image-name .
      
      1. 运行Docker容器:
      docker run -d --name your-container-name -p 80:80 -p 443:443 your-image-name
      

      这样就创建了一个新的Docker容器,它将在宿主机的端口80和443上绑定到Nginx的HTTP和HTTPS服务。您的前端HTML页面可以通过https://xlfdrj.cn访问,后端API则被反向代理到了http://477.680.159.2:5001

      注意:确保您的域名已指向正确的服务器IP地址,并且DNS解析已经生效。此外,可能还需要检查防火墙设置,确保端口80和443是开放的。

      展开全部

      评论 编辑记录
    • Kwan的解忧杂货铺 Java领域优质创作者 2024-04-25 16:59
      关注

      下午好🌅🌅🌅
      本答案参考ChatGPT-3.5

      根据提供的信息,你需要一个能够通过https协议访问服务器的nginx配置文件,因此需要进行如下配置:

      1. 安装nginx

      在centos7.9上安装docker并建立nginx容器,这里不再赘述。

      1. 配置nginx

      进入nginx容器内部,修改nginx.conf配置文件。

      a. 添加server配置

      首先需要添加一个server配置,指定监听的端口号和域名,同时启用https。

      server {
          listen 443;
          server_name xlfdrj.cn;
      
          ssl on;
          ssl_certificate /etc/nginx/ssl/www.xlfdrj.cn.pem;
          ssl_certificate_key /etc/nginx/ssl/www.xlfdrj.cn.key;
      

      b. 配置反向代理

      接下来需要配置反向代理,将所有https请求都转发到后端的接口服务上。

          location / {
              proxy_pass http://477.680.159.2:5001;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
      }
      

      c. 添加http重定向

      为了避免http请求被劫持,我们需要对http请求进行重定向。

      server {
          listen 80;
          server_name xlfdrj.cn;
          return 301 https://$server_name$request_uri;
      }
      

      最终修改后的nginx.conf文件如下:

      worker_processes  1;
      
      events {
          worker_connections  1024;
      }
      
      http {
          include       mime.types;
          default_type  application/octet-stream;
          sendfile        on;
          keepalive_timeout  65;
      
          server {
              listen 443;
              server_name xlfdrj.cn;
      
              ssl on;
              ssl_certificate /etc/nginx/ssl/www.xlfdrj.cn.pem;
              ssl_certificate_key /etc/nginx/ssl/www.xlfdrj.cn.key;
      
              location / {
                  proxy_pass http://477.680.159.2:5001;
                  proxy_set_header Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              }
          }
      
          server {
              listen 80;
              server_name xlfdrj.cn;
              return 301 https://$server_name$request_uri;
          }
      }
      

      修改完成后,保存退出文件。

      1. 重启nginx

      执行如下命令重启nginx。

      nginx -s reload
      

      现在可以通过https://xlfdrj.cn访问服务器了。

      需要注意的是:在修改配置文件前需要备份原有的nginx.conf文件,防止修改错误后造成不必要的麻烦。

      展开全部

      评论
    • 码农阿豪 Java领域优质创作者 2024-04-25 16:59
      关注
      让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
      在宿主机上安装docker和docker-compose,并确保可以使用docker和docker-compose命令。 Step 1:创建一个nginx目录,用于存放nginx配置文件和ssl证书。
      mkdir /data/nginx
      mkdir /data/nginx/conf.d
      mkdir /data/nginx/ssl
      

      Step2:创建nginx配置文件,命名为nginx.conf。

      touch /data/nginx/nginx.conf
      

      编辑nginx.conf文件,将以下内容复制进去并保存。

      user nginx;
      worker_processes auto;
      error_log /var/log/nginx/error.log warn;
      pid /var/run/nginx.pid;
      events {
        worker_connections 1024;
      }
      http {
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        log_format main '$remote_addr - $remote_user [$time_local] "$request" '
            '$status $body_bytes_sent "$http_referer" '
            '"$http_user_agent" "$http_x_forwarded_for"';
        access_log /var/log/nginx/access.log main;
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        include /etc/nginx/conf.d/*.conf;
      }
      

      Step3:创建nginx的ssl证书,命名为www.xlfdrj.cn.pem。

      touch /data/nginx/ssl/www.xlfdrj.cn.pem
      

      将ssl证书的内容复制到该文件中并保存。 Step4:创建nginx的ssl证书密钥,命名为www.xlfdrj.cn.key。

      touch /data/nginx/ssl/www.xlfdrj.cn.key
      

      将ssl证书密钥的内容复制到该文件中并保存。 Step 5:编写nginx的docker-compose.yml文件 在nginx目录下创建docker-compose.yml文件,将以下内容复制进去并保存。

      version: '3'
      services:
        nginx:
          image: nginx:latest
          ports:
            - "80:80"
            - "443:443"
          volumes:
            - /data/nginx/nginx.conf:/etc/nginx/nginx.conf
            - /data/nginx/conf.d:/etc/nginx/conf.d
            - /data/nginx/ssl:/etc/nginx/ssl
            - /usr/share/nginx/html:/usr/share/nginx/html
          container_name: nginx
      

      Step 6:启动nginx容器

      docker-compose up -d
      

      Step 7:配置nginx 在/data/nginx/conf.d目录下创建一个新的文件,命名为xlfdrj.cn.conf,并将以下内容复制进去。

      server {
          listen 80;
          server_name xlfdrj.cn www.xlfdrj.cn;
          return 301 https://xlfdrj.cn$request_uri;
      }
      server {
        listen 443 ssl;
        server_name www.xlfdrj.cn xlfdrj.cn;
        ssl_certificate /etc/nginx/ssl/www.xlfdrj.cn.pem;
        ssl_certificate_key /etc/nginx/ssl/www.xlfdrj.cn.key;
        location / {
          proxy_pass http://477.680.159.2:5001;
        }
      }
      

      保存该文件并重新启动nginx容器。

      docker-compose up -d
      

      现在可以通过https访问xlfdrj.cn网站了,而且nginx将请求转发到http://477.680.159.2:5001。

      展开全部

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    远程监控高并发高吞吐java进程
    KubeEdge 边缘计算应用部署
    Java本地高性能缓存的几种实现方式
    使用Redis部署 PHP 留言板应用
    数据结构与算法之LRU: 实现 LRU 缓存算法功能 (Javascript版)
    分享一下奶茶店怎么在小程序上做商城功能
    第四章 文件管理 七、文件共享
    2022甘肃二级造价工程师考试报名开始!北京、浙江二造考试恢复!
    渗透测试——内网主机发现
    可观察性在软件测试中的重要性
  • 原文地址:https://ask.csdn.net/questions/8094844