nginx 配置http代理和ip访问权限(nginx的403)

nginx的配置文件可以配置http和tcp两个模块,这里我简单介绍下常用的http的配置

nginx.conf文件在安装包解压后里面有,在安装nginx后在 /usr/local/nginx/conf目录下也有,这里我使用/usr/local/nginx/conf目录下的配置文件

使用vim命令修改配置文件

vim   /usr/local/nginx/conf/nginx.conf

然后这里默认会有一个http模块

http模块可以配置很多东西,这里我简单讲下http模块的server模块

这是server模块的默认配置,然后listen是nginx代理需要占用的端口,server_name是服务名,填写localhost或者服务器的外网ip

然后流水location模块  这里有两个location,一个是指定 "/" 路径,一个指定  "/50x.html" 

location后面接的这个符号是一个路径配置符号,指代理那些路径

这里我们只看“/”路径,这是所有路径,然后我们要代理就需要改这里,

proxy_pass 这个是location的一个属性是指代理到那个http请求

如果我们要吧8081代理到http://XXX:8080,那么需要改:(localtion里的默认属性(root和index)可以删掉)

1:server模块的listen,改为8081

2:location的proxy_pass 属性设置为http://XXX:8080

然后如果要限制ip访问8081,那么需要加ip限制

deny和allow两个属性,一个是禁止,一个是允许

需要注意的是用deny  all(禁止所有)然后允许单个或多个ip时需要先allow然后deny all

 

 

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx是用于HTTPHTTPS,SMTP,POP3和IMAP协议的开源反向代理服务器,以及负载平衡器,HTTP缓存和Web服务器(原始服务器)。Nginx项目一开始就非常关注高并发,高性能和低内存使用。它获得了两节式BSD许可,并在Linux,BSD变体,Mac OS X,Solaris,AIX,HP-UX以及其他* nix版本上运行。它还具有用于Microsoft Windows的概念证明端口。 托管一些简单的静态内容 $ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx 或者,Dockerfile可以使用简单的方法来生成包含必要内容的新图像(这比上面的绑定安装要干净得多): FROM nginx COPY static-html-directory /usr/share/nginx/html 将此文件放置在与目录相同的目录中(“ static-html-directory”),运行docker build -t some-content-nginx .,然后启动容器: $ docker run --name some-nginx -d some-content-nginx 暴露外部端口 $ docker run --name some-nginx -d -p 8080:80 some-content-nginx 然后,您可以在浏览器中点击http://localhost:8080或http://host-ip:8080。 复杂的配置 $ docker run --name my-custom-nginx-container -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx 有关nginx配置文件的语法的信息,请参阅官方文档(特别是《入门指南》)。 如果您希望采用默认配置,请使用以下类似内容从运行的nginx容器中复制它: $ docker run --name tmp-nginx-container -d nginx $ docker cp tmp-nginx-container:/etc/nginx/nginx.conf /host/path/nginx.conf $ docker rm -f tmp-nginx-container 也可以使用简单的Dockerfile(在中/host/path/)更干净地完成此操作: FROM nginx COPY nginx.conf /etc/nginx/nginx.conf 如果您CMD在Dockerfile中添加了自定义,请确保将包含-g daemon off;在其中CMD,以使nginx保持在前台,以便Docker可以正确跟踪进程(否则您的容器将在启动后立即停止)! 然后使用构建图像docker build -t custom-nginx .并按如下所示运行它: $ docker run --name my-custom-nginx-container -d custom-nginxNginx配置中使用环境变量 现成的nginx不支持大多数配置块中的环境变量。但是,envsubst如果您需要在nginx启动之前动态生成nginx配置,则可以将其用作解决方法。 这是使用docker-compose.yml的示例: web: image: nginx volumes: - ./mysite.template:/etc/nginx/conf.d/mysite.template ports: - "8080:80" environment: - NGINX_HOST=foobar.com - NGINX_PORT=80 command: /bin/bash -c "envsubst /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'" mysite.template然后,该文件可能包含如下变量引用: listen ${NGINX_PORT}; 在只读模式下运行Nginx 要以只读模式运行nginx,您需要将Docker卷安装到nginx写入信息的每个位置。默认的nginx配置需要对/var/cache和的写权限/var/run。可以通过如下运行nginx轻松地完成此操作: $ d
要解决通过代理访问Nginx出现403错误的问题,首先需要确认代理服务器的配置是否正确。以下是一些解决方法: 1. 检查代理服务器的配置文件:确保代理服务器的Nginx服务配置正确。配置文件通常位于/etc/nginx/目录下,确保代理的目标地址和端口正确配置,并且代理服务器允许传输所有必需的HTTP头信息。 2. 检查代理服务器的ACL访问控制列表:在配置文件中,检查可能存在的访问控制列表(ACL)设置。ACL可以限制代理服务器的访问权限,如果访问限制不正确,可能导致403错误。 3. 检查目标服务器的访问权限:确认代理服务器能够访问目标服务器。如果目标服务器设置了IP白名单、防火墙或其他访问限制,确保代理服务器的IP地址或网络段被允许进行访问。 4. 检查目标服务器的访问控制配置:在目标服务器上查看配置文件,例如Nginx配置文件,在其中检查是否存在访问限制。如果存在访问限制,确保代理服务器的IP地址或请求头被允许进行访问。 5. 检查代理服务器的日志文件:查看代理服务器的日志文件,通常位于/var/log/nginx/目录下,观察是否有任何有关403错误的相关信息。这些日志可能提供有关为什么出现403错误的更多详细信息。 总的来说,通过代理访问Nginx出现403错误可能是由于代理服务器配置错误、目标服务器访问限制或访问控制设置不当等原因导致的。通过检查并纠正这些问题,通常可以解决403错误,并成功访问Nginx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值