CentOS7 Nginx安装及配置反向代理

背景:

  Mono (Mono JIT compiler version 5.4.0.201 )

  jexus-5.8.2-x64(《CentOS7 安装 jexus-5.8.2-x64》

  VirtualBox5.1.22(3个CentOS7系统) (192.168.5.147、192.168.5.182、192.168.5.183)

  参考资料:

  http://www.cnblogs.com/guogangj/p/4131704.html(HappyAA服务器部署笔记1(nginx+tomcat的安装与配置))

  http://www.cnblogs.com/guogangj/p/5207104.html(简易nginx TCP反向代理设置

  http://www.cnblogs.com/bass6/p/5948199.html(CNginx反向代理设置 从80端口转向其他端口)

  http://www.cnblogs.com/jeffzhang/p/4664457.html(Centos 7 上使用nginx为Node.js配置反向代理时错误:(13: Permission denied) while connecting to upstream)

  http://www.cnblogs.com/mfrbuaa/p/4866135.html(解决Nginx的connect() to 127.0.0.1:8080 failed (13: Permission denied) while connect

  http://www.cnblogs.com/zrbfree/p/6419043.html(nginx 安装时候报错:make: *** No rule to make target `build‘, needed by `default‘. Stop.)

  写这篇文章也是为了记录我的履试不爽的过程,怕以后很久不用就忘了,感谢园子及贡献者。

1、三个CentOS7系统准备

在147机子基础上完整复制了182及183,复制好后一样要刷新一下网络的MAC地址。

  

2、安装Jexus《CentOS7 安装 jexus-5.8.2-x64》本想只安装182:8888,183:7777,index.html内容设置不同,但因设置好后始终把错误:"502 Bad Gateway"

于是将147:8080也安装 上并设置

3、安装Nginx

#yum update
更新一些库和必要的支持,完了之后去下载一个nginx的最新版,如今我责编的版本是1.7.7:
#wget http://nginx.org/download/nginx-1.13.6.tar.gz
解压缩
#tar -zvxf nginx-1.13.6.tar.gz
#cd nginx-1.13.6
nginx有很多很多编译配置项,但由于我这是第一篇笔记,所以我基本上都使用了默认的配置:
#./configure --with-http_ssl_module --with-http_gzip_static_module
我只加了两个选项,--with-http_ssl_module表示使用ssl模块,--with-http_gzip_static_module表示使用gzip模块,其它更详细的配置就要参考nginx的文档了:http://nginx.org/en/docs/configure.html

如果没configure成功(会显示XXX not found),那是因为有些依赖没有被正确安装.那么先安装一下这些依赖条件,通常是pcre,zlib这些,这么一下就基本上可以了:
#yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

#make
#make install

可执行文件就会被安装在: /usr/sbin/nginx (默认配置)

nginx基本使用

启动nginx:
#cd /usr/local/nginx/sbin/
#./nginx

如果运行的时候不带-c参数,那就采用默认的配置文件,即/etc/nginx/nginx.conf

查看运行进程状态:
# ps aux | grep nginx

打开浏览器,访问http://localhost/看看nginx的默认页面:

停止nginx:
#./nginx -s stop

重启nginx(配置文件变动后需要重启才能生效):
#./nginx -s reload

检查配置文件是否正确:
#./nginx -t

查看nginx的pid:
cat /usr/local/nginx/logs/nginx.pid

查看nginx版本
$ ./nginx -v

回头看编译配置
# ./nginx -V

4、Nginx配置

#vi /etc/nginx/nginx.conf

user nginx;

worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  sendfile on;

  keepalive_timeout 65;

  server {
    listen 80;

    server_name localhost;

    location / {
      proxy_pass http://192.168.5.147:8080;
    }

  }
}

按上面这样配置按理应该可以访问http://192.168.5.147 显示的应该是147:8080的网页内容,但 就是报错了

于是,这才查看日志

#vi /var/log/nginx/error.log

2017/11/03 05:23:53 [crit] 1331#1331: *12 connect() to 192.168.5.147:8080 failed
(13: Permission denied) while connecting to upstream, client: 192.168.5.65, server: localhost,
request: "GET / HTTP/1.1", upstream: "http://192.168.5.147:8080/", host: "192.168.5.147"

园子中搜“(13: Permission denied) while connecting to upstream, client:”就找到原因,

type=AVC msg=audit(1509701033.988:119): avc: denied { name_connect } for pid=1331
comm="nginx" dest=8080 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket

处理:

#setsebool -P httpd_can_network_connect 1

到这里应该就正常了,反向代理的后面设置。。。待补充

时间: 2024-10-19 19:06:01

CentOS7 Nginx安装及配置反向代理的相关文章

Nginx安装及配置反向代理

今天做了个简单的反向代理,确一直失败,后来看了相关文档后,捋清思路,记录下来,方便日后使用. 一. 安装nginx: 1. sudo apt-get update 2. sudo  apt-get install nginx 二. 配置反向代理: 1. vi /etc/nginx/nginx.conf 2. server { listen 80; #端口号 server_name 阿里云ip; #域名,由于域名认证有三个月等待时间,所以使用阿里云的ip location / { proxy_pa

windows下nginx安装、配置反向代理

1.首先你要去下载nginx  (由于公司服务器环境限制只能用windows版的  最好还是用Linux)下载地址 http://nginx.org/ Mainline version  意思是 当前主要开发的 就是开发版的      Stable version    稳定版的  用这个就行 Legacy versions  以前的稳定版   2.下载后解压,然后运行nginx.exe 如果报错了  去logs文件夹下的error.log看看什么原因 一般都是80端口号被占用 这里说下怎么解决

Centos7下Nginx+Tomcat配置反向代理,使用memcached解决session一致性问题

一.session一致性问题 使用集群方案解决网站高并发问题时,就会部署多台应用服务器.当用户第一次通过客户端(如:浏览器)访问服务器时,服务器会创建对应的session, 使用Nginx反向代理,假如用户A第一次访问站点,被反向代理到服务器一处理,服务器一创建对应sessionA记录信息,用户A再次访问站点时,被反向代理到服务二处理, 而服务器二没有记录用户A的session信息,就会新创建sessionB,导致用户A之前操作丢失. 我们可以通过让多个服务器统一到同一个地方新建session和

【Asp.net Core】在 Linux 子系统中安装 nginx 并配置反向代理

上一篇鸟文中,老周已经介绍过在 Ubuntu 子系统中安装 dotnet-sdk 的方法,本文老周给大伙伴们说说安装 nginx 服务,并配置反向代理.同样,老周假设你从来没有用过 Linux,所以老周会讲得很细.可能因为这样,博客园每次都把老周的文章撤下首页.不管他,他撤他的,我推我的,Who 怕 Who. 其实,你可以选择 nginx 或 Apache,不过老周更喜欢 nginx 一些,总觉得 Apache 有些别扭.当然了,asp.net core 应用是可以独立运行,所以,你确实可以直接

CentOS 7 安装 Nginx 配置反向代理

Linux使用Nginx Yum存储库上安装Nginx,适用于Red Hat Enterprise Linux和CentOS系统. 1.添加设置Nginx Yum存储库 在CentOS中首次安装Nginx时,需要添加Nginx软件包,使用以下命名,添加安装 sudo yum install yum-utils 设置Yum存储库,请创建/etc/yum.repos.d/nginx.repo配置文件,配置内容如下 [nginx-stable] name=nginx stable repo baseu

nginx配置反向代理概述

一.nginx反向代理:Web服务器的调度器 1.反向代理(Reverse Proxy)方式是指以代理服务器来接受客户端的连接请求,然后将请求转发给网络上的web服务器(可能是apache.nginx.tomcat.iis等),并将从web服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个服务器. 图上可以看出:反向代理服务器代理网站Web服务器接收Http请求,对请求进行转发.而且nginx作为反向代理服务器可以根据用户请求的内容把请求转发给后端不同的web服务器,例如静

Nginx和Apache服务器上配置反向代理

在实际项目过程中,由于网站要用到一个在线编辑器(个性化的在线编辑软件),需要跨域进行通信!由于跨域通信较多,所以当时就想到在网站服务器上代理编辑软件的请求! 这就是“反向代理”的实际需求! 一.Nginx上配置反向代理 location /edit/ { proxy_pass http://edit.host.net/; #Proxy Settings proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real

centos7系统下nginx安装并配置开机自启动操作

准备工作 我的centos7系统是最小化安装的, 缺很多库, 首先安装必须的运行库 ? 1 2 3 4 5 6 7 8 9 10 11 yum install wget gcc gcc-c++ pcre-devel zlib-devel ##创建工作目录并进入工作目录 mkdir -p /z/nginx && cd /z/nginx ##获取nginx最新的安装包 wget http://nginx.org/download/nginx-1.11.10.tar.gz ##解压缩 tar z

Nginx 配置反向代理和负载均衡

反向代理 客户端 A 出于某种原因(如 GFW)无法访问服务器 B,但它能访问服务器 C,服务器 C 能访问服务器 A,那么客户端 A 可通过服务器 C 来访问服务器 B.此时服务器 C 就是一个代理服务器(即正向代理). 首先将请求发送到服务器 C,服务器 C 将请求转发到服务器 B 并接收服务器 B 返回的响应,最后将响应返回给客户端 A. 客户端 A 请求某项服务器 B 上没有的资源,但服务器 C 上有此资源,服务器 B 请求服务器 C 上的资源,并将它返回给客户端 A.此时服务器 B 即