nginx(docker)代理内网地址

使用nginx配置代理内网地址:
客户端->nginx(外网)->nginx(内网)->tomcat。
配置外网的nginx: 1.获取nginx镜像:
docker pull nginx
2.获取nginx配置文件:
docker run --rm -v $PWD/nginx/conf.d/:/root/ nginx cp /etc/nginx/conf.d/default.conf /root/default.conf
3.修改nginx配置文件:
vim nginx/conf.d/default.conf
修改location /{}:
    location / {
        #root   /usr/share/nginx/html;
        #index  index.html index.htm;
        #防止出现404错误
        proxy_set_header Host 代理地址;
        #proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #防止出现426错误
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        #代理地址
        proxy_pass http://代理地址/;

    }
4.启动nginx:
 docker run  -v $PWD/nginx/conf.d/:/etc/nginx/conf.d  -p 8080:80 -d nginx
### 配置Docker中的Nginx以支持内网HTTPS访问 为了使Docker容器内的Nginx服务器能够通过HTTPS协议提供服务,在内网环境中同样适用,需遵循一系列特定的操作流程。 #### 创建自签名SSL证书 由于是在内网环境使用,创建自签名的SSL证书是一个可行的选择。这可以通过OpenSSL工具完成: ```bash openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/nginx/ssl/nginx-selfsigned.key \ -out /etc/nginx/ssl/nginx-selfsigned.crt \ -subj "/C=CN/ST=Beijing/L=Beijing/O=Company Name/CN=localhost" ``` 此命令将在指定位置生成私钥和公钥文件[^2]。 #### 修改Nginx配置文件 编辑位于`/usr/local/docker/nginx/conf/nginx.conf`或相应路径下的Nginx配置文件,加入如下设置来启用HTTPS监听以及定义必要的参数: ```nginx server { listen 443 ssl; server_name localhost; ssl_certificate /etc/nginx/ssl/nginx-selfsigned.crt; ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://backend_service_address; # 更多反向代理配置... } } ``` 上述配置指定了要使用的SSL证书及其密钥的位置,并设置了其他安全相关的选项[^3]。 #### 更新防火墙规则 确保Linux系统的防火墙允许来自内部网络对TCP端口443(默认用于HTTPS流量)的请求: ```bash sudo ufw allow from 192.168.0.0/16 to any port 443 proto tcp comment 'Allow HTTPS access within LAN' ``` 这条命令假设您的局域网IP地址范围是从`192.168.x.x`开始;请根据实际情况调整子网掩码部分。 #### 启动与验证 完成以上步骤之后,重启Nginx服务让更改生效: ```bash docker exec -it nginx nginx -s reload ``` 此时应该可以在浏览器中尝试访问`https://<your_internal_ip>/`来确认一切正常工作。请注意替换实际的内部IP地址[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值