欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux环境下Nginx反向代理服务器的安装和配置

程序员文章站 2022-07-12 20:53:02
...

第一次装Nginx 折腾了大半天 刚开始装的时候版本出错了 就一直出问题 出错的版本还删不掉
后来迫不得已把系统给重装了 终于给俺装上了

Linux版本:CentOS 7

首先 安装编译工具和库文件:

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

然后 安装pcre库 让Nginx支持Rewrite功能:

cd /usr/local/src/ #移动到指定目录
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz #下载PCRE安装包
tar zxvf pcre-8.35.tar.gz #解压安装包
然后进入安装包目录
./configure #编译安装
make && make install #编译安装

最后 安装Nginx:

wget http://nginx.org/download/nginx-1.6.2.tar.gz #下载Nginx压缩包
tar xzf nginx-1.6.2.tar.gz #解压Nginx源码包
cd nginx-1.6.2 #然后进入解压出的目录
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 #编译安装
make #编译安装
make install #编译安装

安装完之后 查看Nginx版本

/usr/local/webserver/nginx/sbin/nginx -v #查看Nginx版本

Linux环境下Nginx反向代理服务器的安装和配置

安装成功


然后是配置在服务器上:

先创建Nginx运行的用户www

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www

将/conf/nginx.conf的配置文件替换为以下内容:

根据自己实际情况进行配置 比如CPU核心数和域名

user www www; # 定义Nginx运行的用户和组

worker_processes 1; # 启动进程数 设置值和CPU核心数一致

error_log /usr/local/webserver/nginx/logs/nginx_error.log info; # 全局错误日志的位置和日志级别
#错误日志等级:[debug | info | notice | warn | error | crit]

pid /usr/local/webserver/nginx/nginx.pid; # pid文件位置

worker_rlimit_nofile 65535; # 一个Nginx进程打开的最大文件描述符数目

#工作模式及连接数上限
events
{
  use epoll; # epoll是多路复用IO的一种方式 可大大提高Nginx性能
  worker_connections 65535; # 单个后台进程的最大并发连接数(最大连接数=连接数*进程数)
  multi_accept on; # 尽可能多的接受请求
}

# 设定http服务器 利用其反向代理功能提供负载均衡支持
http
{
  include mime.types; # 设定mine类型 类型由mine.type文件定义
  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';

  #charset gb2312;

  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k; # 请求缓冲
  large_client_header_buffers 4 32k; # 请求缓冲
  client_max_body_size 8m; # 允许客户端请求的最大单文件字节数
  client_body_buffer_size 128k; # 缓冲区代理缓冲用户端请求的最大字节数

  sendfile on; # 指定Nginx是否调用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 128k;

  # 开启gzip压缩 Nginx可以压缩静态资源
  gzip on;
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2; # 压缩级别 最大为9 值越小则压缩后比例越小 CPU处理更快
  gzip_types text/plain application/x-javascript text/css application/xml; # gzip压缩的文件类型
  gzip_vary on;
  #limit_zone crawler $binary_remote_addr 10m;

  proxy_connect_timeout 90; # Nginx和后端服务器连接超时时间
  proxy_send_timeout 90; # 后端服务器数据回传时间
  proxy_read_timeout 90; # 连接成功后 后端服务器的响应时间
  # proxy_busy_buffers_size 64k; # 高负荷下缓冲区大小

  # include vhosts.conf 包含其它配置文件

    #server虚拟主机的配置
    server
     {
       listen 80; #监听端口

       server_name www.test.com; #域名

       index index.html index.htm index.php; # 首页文件名称
       root /usr/local/webserver/nginx/html; #服务器默认网站根目录位置

       # 默认访问请求
       location /
       {
         root /usr/local/webserver/nginx/html;
         index index.html index.htm index.php;
       }

       # 错误提示页
       error_page 500 502 503 504 /50x.html;
       location = /50x.html
       {
         root /usr/local/webserver/nginx/html;
       }


       # PHP脚本请求全部转发到FastCGI处理 使用FastCGI默认配置
       location ~ .*\.(php|php5)?$
       {
         root /root;
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index index.php;
         include fastcgi.conf;
       }

       # Nginx动静分离 静态页面直接从Nginx发布目录读取
       location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
       {
         expires 30d; # 用户的浏览器的缓存时间 可节省带宽和环节服务器压力
         access_log off;
       }

       # 查看Nginx状态
       location /NginxStatus
       {
         stub_status on;
       }


       location ~ .*\.(js|css)?$
       {
         expires 15d;
         access_log off;
       }

    access_log off;
  }
}

配置完了 检查配置文件nginx.conf的正确性:

/usr/local/webserver/nginx/sbin/nginx -t

Linux环境下Nginx反向代理服务器的安装和配置
配置文件正常

一些常用指令:

/usr/local/webserver/nginx/sbin/nginx                      # 启动服务器
/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx

查看进程:

ps -ef | grep nginx #查看Nginx进程

结语:

这个配置文件中的域名我折腾了大半天 域名也试过 ip也试过 hosts也设置过 但在浏览器中通过域名就是访问不了
最后用ip访问 成功是成功了 但肯定不能就这么搞 不然域名就白买了
初步估计可能是配置的问题导致域名没有映射成功 时间不早了 明天再看看吧
Linux环境下Nginx反向代理服务器的安装和配置