记:nginx安装配置反向代理心得

  系统:cent OS 7.1  

  1:环境使用yum包管理工具安装依赖:

  yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

2:首次进入系统默认进去root用户可以先在这里下载   

      2.1 使用wget下载   nginx 安装 1.9.9版本  (源文件在Window下简称安装包)建议用1.9.9版本,其他版本试过proxy_pass  https的时候加载nginx.conf失败说不支持https不知道是不是这个原因待核实

      2.2: 使用wget下载   pcre 安装 8.35版本  (源文件在Window下简称安装包)

      如果wget无法使用,安装一下就行yum install wget 

3:进行编译和安装 

       3.1:进入pcre 下使用./configure来设置配置文件(正常来说编译的时候需要进行软件的配置,但是pcre是用来支持 Rewrite 功能的,就是均衡负载我这里不用到所以默认即可) 。

       3.2:在使用make && make install   来编译和编译安装。  注意:如果修改了配置文件只用make即可,如果用make install会覆盖之前的文件

       3.3: 进入nginx-1.9.9使用./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/root/pcre-8.35   来配置nginx的安装路径、设置PCRE库的源码路径、启用监控nginx运行情况的模块和https协议模块

       3.4:make   编译

       3.5:make install   编译安装

4:修改nginx.conf文件

         

user root;
worker_processes 2; #设置值和CPU核心数一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log warn; #日志位置和日志级别

pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
http
{
  include mime.types;
  default_type application/octet-stream;
  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 /usr/local/webserver/nginx/logs/access.log main;  
#charset gb2312;
     
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
     
  sendfile off;
  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 128k;
  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;
   #下面是server虚拟主机的配置

server
{
    listen 80;#端口监听
    server_name localhost;#域名
   autoindex on;#是否允许访问目录
   
    location / {
        root /usr/local/webserver/nginx/html;
        index index.html index.htm index.php;
        access_log /usr/local/webserver/nginx/logs/access.log main;
    	autoindex on;
    	access_log on;
    }

    location /web-tycx {	    
     	#rewrite ^/test(.*)$ /$1 break;
    	proxy_set_header referer "XXXXXXXX";
        proxy_set_header Host $proxy_host:server_port;
        proxy_set_header X-Forward-For $remote_addr;
        proxy_cookie_domain XXXXXXX XXXXXXX;
	    proxy_set_header Cookie $http_cookie;
    	proxy_pass XXXXXXXX;
    
    	access_log on;   
	    access_log /usr/local/webserver/nginx/logs/access.log main;
 }
  location /aa/ {
        rewrite ^/aa/(.*)$ /$1 break;
        proxy_pass XXXXXXX;
        access_log on;

 }


    #错误跳转
     error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        root  /usr/local/webserver/nginx/html;
        autoindex  on;
     }
     #禁止用户访问该目录
    location ~ ^/(css)
    {
        return 403;
    }
    #禁止
    location ~ .*\.(php|php5)?$
    {
      #fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_pass 198.44.191.41:3389;
      fastcgi_index index.html;
      include fastcgi.conf;
    }
    location ~ .*\.(js|css)?$
    {
      expires 1d;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
        expires 30d;
         access_log on;
    }
        access_log on;
    }
}

 

替换即可。通过 /usr/local/webserver/nginx/sbin/nginx -t 检测配置文件是否正常

5:注意事项

        5.1:注意一下user  必须设置为root   否则打开网页会出现403无权限。也可以通过ps -ef | grep nginx 查看下现在nginx是通过什么用户运行,如果worker process是nobody那就是用户错了,改配置文件user为root。

        5.2:运行nginx后访问还是无法连接的状态但是不是提示403,检查下防火墙是否打开了80端口,cnetOS 7用的是firewall命令跟6有点不一样,具体详细的可以看 VicterTian大神的(https://blog.csdn.net/TTTZZZTTTZZZ/article/details/81483204)。

查看防火墙开启了什么端口

firewall-cmd --list-ports
 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

开启端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

  命令含义:

       –zone #作用域

       –add-port=80/tcp #添加端口,格式为:端口/通讯协议

       –permanent #永久生效,没有此参数重启后失效

重启防火墙

firewall-cmd --reload #重启firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

正常搞定配置完成,其他问题,等出现在更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值