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. 各个版本的jee(servlet,jsp)对应的web.xml的模板

    参考链接: https://yutuo.net/archives/7048a006eeb2ac85.html

  2. 每天CSS学习之text-shadow

    今天学习的是CSS3的一个属性text-shadow.该属性能映射出文字的阴影. text-shadow一共就四个属性: text-shadow: h-shadow  v-shadow  [blur] ...

  3. 使用perfect进行服务端开发

    最近闲来无事,研究了下基于perfect的swift后端开发.根据大神的博客进行了简单的配置,加深下印象也算是和各位分享一下. 参考博客:http://www.cnblogs.com/ludashi ...

  4. [Leetcode 104]求二叉树的深度Depth of BinaryTree

    [题目] Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the ...

  5. JavaWeb基础-Jsp基础语法

    jsp基础语法 JSP的组成 静态内容.指令.表达式.小脚本.声明.注释 JSP的生命周期 用户发出index.jsp ,服务端判断是否是第一次请求,若是第一次请求,则tomcat中的JSP引擎中的文 ...

  6. Oracle in与exist条件分析

    select ...from user in('a','b','c'):in支持多个条件同时查询

  7. python基础初识介绍以及安装

    python介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承. ...

  8. kbmMW SmartService控制返回类型

  9. LINUX内核完全注释

    学习教材:LINUX内核完全注释,内核版本0.11,修正版V3.0 赵炯编著 参考教材:UNIX操作系统设计--M. J. Bach, programming the 80x86  --John H. ...

  10. Ubuntu16.04 执行sudo apt-get update出现E: Sub-process returned an error code错误

    Reading package lists... Done E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr ...