nginx use 9000 port Permission denied  other port ok

新架构下web服务需要使用反向代理,将不同的请求转发到不同的service,对应不同的端口。

nginx.conf 配置如下:

        listen        default_server;
listen [::]: default_server;
server_name _;
root /usr/share/nginx/html; # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; location / {
}
include rs.conf;
include d.conf;
error_page 404 /404.html;

rs.conf 和 d.conf

location /deliver {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:9002; } location /click {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:9000 ;
}

确保 两个proxy_pass 分别可以正常访问,

通过nginx listen的server 访问请求对应的路径,发现只有click 的路径可正常访问,deliver  的服务,

经过多次实验,deliver 无论使用 9001 还是9002 均不能访问,对应nginx提示:

* connect() to 127.0.0.1: failed (: Permission denied) while connecting to upstream, client: 1.2.3.4 ,
server: _, request: "GET /deliver HTTP/1.1", upstream: "http://127.0.0.1:9002/deliver", host: "35.0.0.86"

如果把click服务暂停,把deliver 服务启动时候绑定9000 端口则deliver 服务可正常访问,

因此问题和服务启动端口有关,nginx 无法listen 并且代理转发;

具体原因和使用的google cloud 安装的镜像版本内核为的 selinux 的配置有关;

semanage命令是用来查询与修改SELinux默认目录的安全上下文。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。

semanage port -l | grep http_port_t
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
As you can see from the output above with SELinux in enforcing mode http is only allowed to bind to the listed ports. The solution is to add the ports you want to bind on to the list
semanage port -a -t http_port_t -p tcp  9002 

对selinux 的http 端口增加 9002 ,访问nginx 配置listen 的server +location /deliver 服务终于可以正常访问 。

tag: "nginx port Permission denied  other port ok"

9000 service code:

package main

import (
"fmt"
"log"
"net/http"
) func main() { //http.HandleFunc("/deliver", myHandler)
http.HandleFunc("/click", clickHandler) log.Fatal(http.ListenAndServe("127.0.0.1:9000", nil))
} func myHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "deliver service")
} func clickHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "hello this is click ")
}

nginx-port-Permission-denied的更多相关文章

  1. Nginx的Permission denied错误

    Nginx的Permission denied错误 环境: CentOS7 问题描述 今天搭建了nginx+uwsgi+django的环境,之后通过浏览器访问遇到下面问题: 2017/03/31 19 ...

  2. Ubuntu nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

    在Ubuntu 12中启动刚安装好的Nginx,报错: nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied) 原因如下: ...

  3. Nginx报错403 forbidden (13: Permission denied)的解决办法

    由于开发需要,在本地环境中配置了LNMP环境,使用的是Centos 6.5 的yum安装,安装一切正常,但是由于默认网站文件夹比较奇葩,于是把网站文件用mv命令移动到了新的目录,并相应修改了配置文件, ...

  4. nginx执行文件替换掉之后重启提示permission denied

    重启的时候显示 -bash: /usr/local/nginx/sbin/nginx: Permission denied 进入nginx执行文件的目录:

  5. nginx 出现 13: Permission denied

    原文地址:http://www.nginx.cn/695.html 前段时间把程序员的wordpress升级到3.5.1,本身如果没有特别的插件,在后台更新就能完成. 更新完成后在后台发布文章,编辑器 ...

  6. 解决Nginx的connect() to 127.0.0.1:8080 failed (13: Permission denied) while connect

    在进行Nginx+Tomcat 负载均衡的时候遇到了这个权限问题,在error.log日志中.我们能够看到例如以下: connect() to 127.0.0.1:8080 failed (13: P ...

  7. Centos 7 上使用nginx为Node.js配置反向代理时错误:(13: Permission denied) while connecting to upstream

    错误来源:Centos 7 上使用nginx为Node.js配置反向代理时产生(13: Permission denied) while connecting to upstream的错误 nginx ...

  8. 解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法

    我是在在本地用虚拟机中通过yum安装nginx的,安装一切正常,但是访问时报403, 于是查看nginx日志,路径为/var/log/nginx/error.log.打开日志发现报错Permissio ...

  9. nginx的权限问题(13: Permission denied)解决办法

    一个nginx带多个tomcat集群环境,老是报如下错误:   2012/03/07 15:30:39 /opt/nginx/proxy_temp/4/31/0000000314" fail ...

  10. 解决Nginx的13: Permission denied) while connecting to upstream

    一.问题 做Nginx负载的时候,经常遇到这样的情况: // :: [crit] #: * connect() to failed (: Permission denied) while connec ...

随机推荐

  1. xpath & <tr><td><br>

    python : 3.6 lxml : 4.2.1 from lxml.html import etree test_html = ''' <!DOCTYPE html PUBLIC " ...

  2. angular4-表单

    导入表单模块 import { FormsModule } from '@angular/forms'; // ... @NgModule({ imports: [BrowserModule, For ...

  3. 记录搭建ssm项目

    搞java也快3年了,搭建一个ssm居然有点吃力. 参考链接:https://blog.csdn.net/gebitan505/article/details/44455235/ 环境准备:jdk8. ...

  4. Problem A: 平面上的点——Point类 (I)

    Description 在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定.现在我们封装一个“Point类”来实现平面上的点的操作. 根据“append.cc”,完成Point类的构造方 ...

  5. Vuejs2.0学习(Render函数,createElement,vm.$slots)

    直接来到进阶部分, Render函数 直接来到Render,本来也想跳过,发现后面的路由貌似跟它还有点关联.先来看看Render 1.1 官网一开始就看的挺懵的,不知道讲的是啥,动手试了一下,一开头讲 ...

  6. SQL注入之Sqli-labs系列第十四关(基于双引号POST报错注入)

    开始挑战第十四关(Double Injection- Double quotes- String) 访问地址,输入报错语句 '  ''  ')  ") - 等使其报错 分析报错信息 很明显是 ...

  7. js--call( )/apply()/bind()--应用

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call funct ...

  8. 机器学习: 共轭梯度算法(PCG)

    今天介绍数值计算和优化方法中非常有效的一种数值解法,共轭梯度法.我们知道,在解大型线性方程组的时候,很少会有一步到位的精确解析解,一般都需要通过迭代来进行逼近,而 PCG 就是这样一种迭代逼近算法. ...

  9. JavaScript中的内置对象-8--3.Math-Math对象的方法-min()- max()- ceil() - floor()- round()- abs(); Math对象的random()方法;

    JavaScript内置对象-3.Math(数值) 学习目标 1.掌握Math对象的方法: min() max() ceil() floor() round() abs() Math.min() 语法 ...

  10. Android 1.5-7.0(持续更新)安全机制一览

    Android 1.5 ProPolice to prevent stack buffer overruns (-fstack-protector),在缓冲区buffer与返回地址之间加入Canary ...