当前位置: 首页 > news >正文

域名+nginx反向代理实现案例

目标:访问域名能够访问指定服务器的端口进程

服务器操作(安装配置nginx服务):

1、添加Nginx官方仓库

vim /etc/yum.repos.d/nginx.repo #末尾添加
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
#安装nginx
yum install nginx

2、安装Nginx服务

yum install -y nginx

3、配置Nginx配置文件

#编辑Nginx配置文件
vim /etc/nginx/nginx.conf
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {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 4096;include             /etc/nginx/mime.types;default_type        application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;#这部分主要是HTTP到HTTPS 的重定向server {listen 80;server_name 域名地址;return 301 https://$server_name$request_uri;}server {listen 443 ssl;server_name 域名地址;#证书文件路径,需要下载下来放到路径中(***修改成对应的证书文件名称)ssl_certificate /data/crt/***.fun_bundle.pem;ssl_certificate_key /data/crt/***.fun.key;#这部分是nginx的反向代理,访问域名/aaa/能够反向代理给指定IP的服务location /aaa/ {proxy_pass http://IP地址:端口/;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}
}

上述域名地址、证书名称、IP端口都需要根据实际修改
主要是添加两个server 内容:
第一个server 是将http重定向到https;
第二个server 是nginx将访问域名/aaa/能够反向代理给指定IP服务。

4、启动nginx并设置开机自启

#启动
systemctl start nginx
#开机自启
systemctl enable nginx

域名操作部分

1、域名解析,将nginx服务器IP绑定域名

在这里插入图片描述
根据上图添加,记录值为nginx的IP地址,主机记录@是解析域名本身不加前缀

2、申请域名ssl证书

在这里插入图片描述
这里选择下载nginx证书
在这里插入图片描述
下载并解压得到如下文件
在这里插入图片描述
上传至服务器跟nginx配置文件中路径对应
在这里插入图片描述
在这里插入图片描述

测试验证部分

1、写一个占用3000端口的HTTP服务器

cat > index.html << 'EOF'
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>3000端口测试页面</title><style>body { font-family: Arial, sans-serif; text-align: center; margin: 100px; }h1 { color: #3498db; }p { font-size: 18px; }</style>
</head>
<body><h1>你好!这是3000端口的网页服务</h1><p>当前时间:<span id="current-time"></span></p><p>这是一个通过Python SimpleHTTPServer创建的测试页面</p><script>document.getElementById('current-time').textContent = new Date().toLocaleString();</script>
</body>
</html>
EOF
#启动Python的HTTP服务器,占用3000端口(index.html当前也执行)
python3 -m http.server 3000
#执行需要事先安装好python,如果没安装,如下命令安装一下
yum install python3 python3-pip

2、测试验证

#重启nginx
systemctl restart nginx

浏览器访问域名/aaa/,测试是否能够访问到端口3000的http服务器
在这里插入图片描述
成功返回如图

相关文章:

  • frida对qt5(32位)实现简单HOOK
  • Oracle 中使用CONNECT BY、START WITH递归查询
  • Dockerfile - 自定义 Nginx 镜像构建
  • 面向对象-对象和属性描述符详解(一)
  • 使用HashMap或者List模拟数据库插入和查询数据
  • java集合(十) ---- LinkedList 类
  • 精准洞察位移变化,位移传感器开启测量新纪元
  • 自适应攻击的强大后门防御
  • 个典型的 Java 泛型在反序列化场景下“类型擦除 + 无法推断具体类型”导致的隐性 Bug
  • 解决 html2canvas 把svg转成jpg,无法把svg里的image图片正常显示的情况
  • uni-app项目实战笔记5--使用grid进行定位布局
  • Spring boot 的 maven 打包过程
  • 人工智能 倒底是 智能 还是 智障?
  • FastAPI如何用角色权限让Web应用安全又灵活?
  • JAVA_强制类型转换:
  • Android中的DX、D8、R8
  • Android多渠道打包
  • 【STM32的通用定时器CR1的CKD[1:0]: 时钟分频因子 (Clock division)】
  • 造轮子系列:从0到1打造生产级HTTP客户端,优雅封装OkHttp/HttpClient,支持异步、重试与文件操作
  • LSM树与B+树优缺点分析
  • 后端网站开发培训/谈谈对seo的理解
  • 如何在税务局网站做注册地址变更/seo网络科技有限公司
  • 广州网站建设团队/百度收录的网页数量
  • wordpress 转载 插件/百度seo快速排名优化软件
  • wordpress显示评论数/上海网站建设优化
  • 做神马网站快速排/台州百度推广优化