开发者社区> cloud_ruiy> 正文

nginx 反向代理

简介: nginx反向代理配置实例(前nginx+后apache)   我就拿我现在这个站的环境给大家看看..    如果是一台普通vps或者是独立服务器 ,,,首先我们要干的就是装环境和配置防火墙了..    首先我们配置下防火墙吧,  [root@51buyhost.
+关注继续查看

nginx反向代理配置实例(前nginx+后apache)

  我就拿我现在这个站的环境给大家看看..

   如果是一台普通vps或者是独立服务器 ,,,首先我们要干的就是装环境和配置防火墙了..

   首先我们配置下防火墙吧,

 [root@51buyhost.com ~]# vim /etc/sysconfig/iptables

 :wq!  保存退出

 大家肯定会问 88 89 端口是干嘛的,,不用问了,等会看就知道了...

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

 -A INPUT -m state --state NEW -m tcp -p tcp --dport 88 -j ACCEPT

 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

还有一件事需要做的就是selinux   

可能大家会觉得我啰嗦.....错...这些 我主要是对新手来讲的,,,, 如果你是老手你跳到最下面看的我配置文件就行...

 [root@51buyhost.com ~]# vim /etc/sysconfig/selinux  打开selinux 配置文件

 在里面把所有的都注释掉新增一个

SELINUX=disabled

 :wq! 保存退出

 重启 服务器[root@51buyhost.com ~]# reboot 

等 服务器重启完毕之后 我们就开始安装环境了..  注意,,我给大家介绍的全部是yum 源安装 .喜欢编译的安装的自己 在编译安装之前需安装编译需要的依赖包以及 gcc  等等那些工具...在此我提醒大家.很多人 的服务器环境是最小化安装版, 最小化安装版是不适合 编译安装环境的..如果是的话请手动用 yum 安装所需要的编译环境.. 不说了 咱们开始 

  首先安装nginx吧  这种方法是教大家安装nginx 最新版本的..

 [root@51buyhost.com ~]# vim /etc/yum.repos.d/CentOS-Base.repo

在最后一行加上如下内容

[nginx]

 name=nginx repo

 baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

 gpgcheck=0

 enabled=1

 :wq! 保存退出

 下面开始安装nginx了

[root@51buyhost.com ~]# yum install nginx

提示按 y 

安装 mysql

 [root@51buyhost.com ~]# yum install  mysql-server

提示按 y

安装php

 [root@51buyhost.com ~]# yum install php -y

提示按 y 

安装php的扩展插件

[root@51buyhost.com ~]# yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel

好了.以上就是 lnmp 环境的完整 安装了.

接下来我们需要把 /etc/nginx/ 目录下面的nginx.conf 这个里面的内容全部修改

 最好是先把默认的nginx.conf 这个配置文件备份下吧.

 [root@51buyhost.com ~]#cd /etc/nginx

备份重新命名为 nginx.confbak

接下来新建立一个nginx.conf 配置文件

 输入一下内容:

user  nginx 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;

     server_tokens off;

     server_names_hash_bucket_size 128;

     client_header_buffer_size 32k;

     large_client_header_buffers 4 32k;

     client_max_body_size 50m;

     sendfile on;

     tcp_nopush     on;

     keepalive_timeout 60;

     tcp_nodelay on;

    fastcgi_connect_timeout 300;

    fastcgi_send_timeout 300;

    fastcgi_read_timeout 300;

    fastcgi_buffer_size 64k;

    fastcgi_buffers 4 64k;

    fastcgi_busy_buffers_size 128k;

    fastcgi_temp_file_write_size 256k;

    gzip on;

    gzip_min_length  1k;

    gzip_buffers     4 16k;

    gzip_http_version 1.0;

    gzip_comp_level 2;

    gzip_types       text/plain application/x-javascript text/css application/xml;

    gzip_vary on;

     proxy_set_header  Host $host;

     proxy_set_header  X-Real-IP $remote_addr;

     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

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

                       '$status $body_bytes_sent "$http_referer" '

                       '"$http_user_agent" "$http_x_forwarded_for"';

 server

         {

                 listen       80;

                 server_name www.51buyhost.com 51buyhost.com;

                index index.html index.htm index.php;

 root  /data/51buyhost;

                 location / {

                         try_files $uri @apache;

                         }

                 location @apache {

                         internal;

                         proxy_pass http://127.0.0.1:88;

                         #include proxy.conf;

                         }

                 location ~ .*.(php|php5)?$

                         {

                                 proxy_pass http://127.0.0.1:88;

                                # include proxy.conf;

                         }

                 location /status {

                         stub_status on;

                         access_log   off;

                 }

                 location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$

                         {

                          access_log off;

                         expires      30d;

                         }

                 location ~ .*.(js|css)?$

                         {

                         access_log off;

                          expires      12h;

                         }

                 access_log /data/log/51buyhost/access.log;

         }

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

以上是我服务器的主配置文件了..

只真对www.51buyhost.com 这个站的... 虚拟主机配置文件我就不亮出来了.

以上就是nginx 的整个配置文件了.还有一个虚拟主机在里面 

 下面我亮出我的apache配置文件  

apache配置文件比较多  我只告诉大家我修改了哪些地方而已

[root@51buyhost ~]# vim /etc/httpd/conf/httpd.conf

在大概136行的样子增加以下内容

 把默认的 80 端口注释

Listen 127.0.0.1:88

还有在最下面增加以下内容

Include /etc/httpd/conf/51buyhost.conf

我给大家最好都是默认的配置吧,因为 个人有个人的配置访问 ,,我测试的时候 只在apache配置文件里加了以上内容

 接下来就设置51buyhost.conf 的内容

 上面带了dz 伪静态的规则

<VirtualHost *:88>

 DocumentRoot "/data/51buyhost"

 ServerName www.51buyhost.com

 ServerAlias 51buyhost.com

 <Directory "/data/51buyhost">

 allow from all

 Options +Indexes

 </Directory>

 <IfModule mod_rewrite.c>

 RewriteEngine On

 RewriteCond %{QUERY_STRING} ^(.*)$

 RewriteRule ^(.*)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2&%1

 RewriteCond %{QUERY_STRING} ^(.*)$

 RewriteRule ^(.*)/article-([0-9]+)-([0-9]+).html$ $1/portal.php?mod=view&aid=$2&page=$3&%1

 RewriteCond %{QUERY_STRING} ^(.*)$

 RewriteRule ^(.*)/forum-(w+)-([0-9]+).html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1

 RewriteCond %{QUERY_STRING} ^(.*)$

 RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3&%1

 RewriteCond %{QUERY_STRING} ^(.*)$

 RewriteRule ^(.*)/group-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=group&fid=$2&page=$3&%1

 RewriteCond %{QUERY_STRING} ^(.*)$

 RewriteRule ^(.*)/space-(username|uid)-(.+).html$ $1/home.php?mod=space&$2=$3&%1

 RewriteCond %{QUERY_STRING} ^(.*)$

 RewriteRule ^(.*)/blog-([0-9]+)-([0-9]+).html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3&%1

 RewriteCond %{QUERY_STRING} ^(.*)$

 RewriteRule ^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_-]+).html$ $1/plugin.php?id=$2:$3&%1

 RewriteCond %{http_host} ^51buyhost.com [NC]

 RewriteRule ^(.*)$ http://www.51buyhost.com [L,R=301]

 </IfModule>

 <IfModule mod_mem_cache.c>

 CacheEnable mem /

 MCacheMaxObjectCount 20000

 MCacheMaxObjectSize 1048576

 MCacheMaxStreamingBuffer 65536

 MCacheMinObjectSize 10

 MCacheRemovalAlgorithm GDSF

 MCacheSize 4096

 CacheMaxExpire 864000

 CacheDefaultExpire 86400

 CacheDisable /php

 </IfModule>

 #</Directory>

 ExpiresActive on

 ExpiresBytype text/css "access plus 3 days

 ExpiresByType application/x-javascript "access plus 3 days "

 ExpiresByType image/jpeg "access plus 3 days "

 Expiresbytype image/gif "access plus 3 days "

 Expiresbytype image/png "access plus 3 days "

 #</Directory>

 </VirtualHost>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23628 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
22464 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
20638 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
12010 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
22958 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
14834 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
36542 0
+关注
cloud_ruiy
爱技术,爱开源,爱linux! 在技术成长道路上,能拉一把就拉一把,不藏着不掖着! 我由衷希望能和有理想敢吃苦的it人一起共同进步,共同成长! 虽然我现在没有大牛的能力,但是我有大牛的心态. 技术领域:shell编程,C编程,嵌入式开发.hadoop大数据,桉树,onenebul
1715
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载