nginx反代

需求:同一主机上跑多个web站点,使用httpd+php-fpm无法满足需要;

解决方案:加一个nginx,接入所有用户访问,根据用户访问的主页不同,反代后端不同站点;

前端:nginx

后端:

同一主机多个web站点

www.bbtw.net

www.shxinsheng.wang

new.khcm.net

安装过程略,主要描述反代过程:

nginx主配置文件:

]# egrep -v ‘^[[:space:]]*#|^$‘ /etc/nginx/nginx.conf

user nginx;

worker_processes auto;

error_log /var/log/nginx/error.log;

pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {

worker_connections 1024;

}

http {

log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘

‘$status $body_bytes_sent "$http_referer" ‘

‘"$http_user_agent" "$http_x_forwarded_for"‘;

access_log  /var/log/nginx/access.log  main;

sendfile            on;

tcp_nopush          on;

tcp_nodelay         on;

keepalive_timeout   65;

types_hash_max_size 2048;

include             /etc/nginx/mime.types;

default_type        application/octet-stream;

include /etc/nginx/conf.d/*.conf;

server {

listen       80 default_server;

listen       [::]:80 default_server;

server_name  _;

root         /usr/share/nginx/html;

include /etc/nginx/default.d/*.conf;

location / {

}

error_page 404 /404.html;

location = /40x.html {

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

}

}

采用每个站点一个配置文件,放在/etc/nginx/conf.d/目录下:

www.bbtw.net站点,配置文件为bbt.conf;

www.shxinsheng.wang站点,配置文件为xyk.conf

new.khcm.net站点,配置文件为khcm.conf

]# cat /etc/nginx/conf.d/bbt.conf

server {

listen       80;

server_name www.bbtw.net;

port_in_redirect   on;

keepalive_timeout  15;

location / {

proxy_set_header Connection ‘‘;

proxy_http_version 1.1;

chunked_transfer_encoding off;

client_max_body_size 10m;

proxy_store off;

proxy_redirect     off;

proxy_set_header   Host             $host;

proxy_set_header   X-Real-IP        $remote_addr;

proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

proxy_buffering off;

proxy_pass http://127.0.0.1:81$request_uri;

}

}

]# cat /etc/nginx/conf.d/xyk.conf

server {

listen       80;

server_name www.shxinsheng.wang;

charset utf-8;

#error_log  /var/log/nginx/jenkins.error.log;

port_in_redirect   on;

keepalive_timeout  15;

location / {

proxy_set_header Connection ‘‘;

proxy_http_version 1.1;

chunked_transfer_encoding off;

client_max_body_size 10m;

proxy_store off;

proxy_redirect     off;

proxy_set_header   Host             $host;

proxy_set_header   X-Real-IP        $remote_addr;

proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

proxy_buffering off;

proxy_pass http://127.0.0.1:8082$request_uri;

}

}

]# cat /etc/nginx/conf.d/khcm.conf

server {

listen       80;

server_name new.khcm.net;

charset utf-8;

#error_log  /var/log/nginx/jenkins.error.log;

port_in_redirect   on;

keepalive_timeout  15;

location / {

proxy_set_header Connection ‘‘;

proxy_http_version 1.1;

chunked_transfer_encoding off;

client_max_body_size 10m;

proxy_store off;

proxy_redirect     off;

proxy_set_header   Host             $host;

proxy_set_header   X-Real-IP        $remote_addr;

proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

proxy_buffering off;

proxy_pass http://127.0.0.1:82$request_uri;

}

}

httpd主配置文件:

]# egrep -v ‘^[[:space:]]*#|^$‘ /etc/httpd/conf/httpd.conf

ServerRoot "/etc/httpd"

Listen 82

Include conf.modules.d/*.conf

User apache

Group apache

ServerAdmin [email protected]

<Directory />

AllowOverride none

Require all denied

</Directory>

<Directory "/var/www">

AllowOverride None

Require all granted

</Directory>

<Directory "/var/www/html">

Options Indexes FollowSymLinks

AllowOverride None

Require all granted

</Directory>

<IfModule dir_module>

DirectoryIndex  index.html

</IfModule>

<Files ".ht*">

Require all denied

</Files>

ErrorLog "logs/error_log"

LogLevel warn

<IfModule log_config_module>

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

<IfModule logio_module>

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

</IfModule>

CustomLog "logs/access_log" combined

</IfModule>

<IfModule alias_module>

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

</IfModule>

<Directory "/var/www/cgi-bin">

AllowOverride None

Options None

Require all granted

</Directory>

<IfModule mime_module>

TypesConfig /etc/mime.types

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml

</IfModule>

<IfModule mime_magic_module>

MIMEMagicFile conf/magic

</IfModule>

EnableSendfile on

IncludeOptional conf.d/*.conf

httpd虚拟主机配置文件:

]# cat /etc/httpd/conf.d/vhost.conf

DirectoryIndex index.php

Listen 8081

Listen 8082

Listen 8083

Listen 81

<VirtualHost *:8082>

ServerName www.shxinsheng.wang

DocumentRoot /var/www/wwwroot

ProxyRequests off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/wwwroot/$1

<Directory "/var/www/wwwroot">

Options None

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

<VirtualHost *:8081>

ServerAdmin root

DocumentRoot /usr/share/phpMyAdmin

<Directory "/usr/share/phpMyAdmin">

Options FollowSymLinks

AllowOverride None

Require all granted

</directory>

</VirtualHost>

<VirtualHost *:81>

ServerName www.bbtw.net

DocumentRoot /var/www/banbiantian

ProxyRequests off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/banbiantian

<Directory "/var/www/banbiantian">

Options None

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

<VirtualHost *:82>

ServerName new.khcm.net

DocumentRoot /var/www/khcm

ProxyRequests off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/khcm

<Directory "/var/www/khcm">

Options None

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

启动nginx、httpd、php-fpm即可

时间: 2024-11-05 22:50:56

nginx反代的相关文章

Http和Nginx反代至Tomcat(LNMT、LAMT)

Http和Nginx反代至Tomcat(LNMT.LAMT) ================================================================================ 概述: 本章将主要介绍Http和Nginx反代至Tomcat,具体内容如下: LNMT部署并实现动静分离 LAMT部署的实现方式: ·proxy_http_module代理配置 ·proxy_ajp_module代理配置 Tomcat脚本(启动.停止.重启) ========

Nginx反代超详细教程:加速网站Google、Gravatar和Hostloc

VPS教程 » Nginx反代超详细教程:加速网站Google.Gravatar和Hostloc Nginx反代超详细教程:加速网站Google.Gravatar和Hostloc December 31st , 2015•Edit•访问: 672 次 nginx 这个轻量级.高性能的 web server 主要可以干两件事情: 1.直接作为http server(需要Fastcgi配合): 2.作为反代服务器(进一步可以实现均衡负载). 这里主要利用一下反功能来方便一下日常生活.选择Gravat

nginx反代mogilefs

一.简介 1.介绍 MogileFS 是一个开源的分布式文件系统,用于组建分布式文件集群,由 LiveJournal 旗下 Danga Interactive 公司开发,Danga 团队开发了包括 Memcached.MogileFS.Perlbal 等不错的开源项目:(注:Perlbal 是一个强大的 Perl 写的反向代理服务器) 2.MogileFS的特性 (1)工作在应用层提供服务 (2)无单点(至少存在两份副本在不同的节点上) (3)自动文件复制 mogilefs将多个文件组织成一个单

Tomcat集群session复制,httpd/nginx反代Tomcat集群

   一个大型站点都会涉及到动态应用,动态应用都需要做会话保持,常见的会话保持方式就三种,一是session stick,二是session replication,三是session share,对于小型规模的tomcat集群,大多者会采用session replication方式,但阅读官方文档也好,查询大牛博客也罢,发现均有不准确之处,所以亲测成功实现之后得出如下文档,还望高人指点. 实验环境: 操作系统:CentOS 7.2 tomcat版本:tomcat-7.0.54(yum安装方式)

nginx反代mogilefs实现海量小文件存储

一.简介 1.介绍 MogileFS 是一个开源的分布式文件系统,用于组建分布式文件集群,由 LiveJournal 旗下 Danga Interactive 公司开发,Danga 团队开发了包括 Memcached.MogileFS.Perlbal 等不错的开源项目:(注:Perlbal 是一个强大的 Perl 写的反向代理服务器) 2.MogileFS的特性 (1)工作在应用层提供服务 (2)无单点(至少存在两份副本在不同的节点上) (3)自动文件复制 mogilefs将多个文件组织成一个单

nginx反代httpd,实现三种tomcat代理模型至后端的tomcat服务器,会话绑定的三种方式

构建tomcat集群,实现前端一台nginx反代,到后端的apache服务器,由apache负责向后端的tomcat服务器进行资源调度,这样的模式比直接用nginx反代到后端主机,tomcat服务器所受到的压力会更小,服务将会更加稳定,这样的模式是经过实践检验出来的.如果nginx直接调度到后端tomcat服务器,则只支持http和https,而不支持ajp,http与https模式的设定,可以让外来客户直接访问tomcat服务器,而不需要经过我们设置好的前端nginx的端口,这样是十分不安全的

Nginx反代配置

一.ngx_http_proxy_module模块     ngx_http_proxy_module模块可根据用户请求的uri传递至后端服务器,实现反向代理 命令: 1.proxy_pass 设置一个代理服务器的地址,协议,和一个可选的URI的位置应该映射.作为一个协议,"HTTP"或"https"可以指定.地址可以被指定为一个域名或IP地址,和一个可选的端口 语法:proxy_pass URL; 可用的上下文:location, if in location,

Nginx反代Tomcat项目

需求背景: 直接访问Tomcat项目路径如下: http://10.8.1.5:8080/erp 要求使用www.erp.com访问是可以访问至http://10.8.1.5:8080/erp 需求分析: 这里不可以使用简单的反向代理,因为后端服务器有目录(erp)存在,而为了访问友好www.erp.com后端不能加目录,所以不能纯粹的使用nginx根据目录来匹配后端服务器,最终实现效果nginx配置如下: server {     listen      80;     server_name

Django Nginx反代 获取真实ip

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Andale Mono"; color: #28fe14; background-color: rgba(0, 0, 0, 0.9) } span.s1 { } 非反代情况下Django 中 ip = request.META['REMOTE_ADDR'] 即可拿到对应ip地址 Nginx.fcgi.uwsgi等反代情况下 p.p1 { margin: 0.0px 0.0px 0