• nginx安装与配置


    一、在线安装

    1. ubuntu 安装
    sudo apt-get install nginx
    

    安装后文件结构为:

    • 配置文件:/etc/nginx ,并且每台虚拟主机已经安排在 /etc/nginx/sites-available下
    • 启动程序文件在:/usr/sbin/nginx
    • 日志文件放在 /var/log/nginx中,分别为 access.log 和 error.log
    • 并且在 /etc/init.d 创建了启动脚本nginx
    • 默认的虚拟主机的目录设置在 /usr/share/nginx/www

    二、源代码安装

    下载地址:http://nginx.org/download

    1. ubuntu安装

    安装过程:

    $ ./configure
    $ make
    $ make install
    

    安装成功后,nginx放置在 /usr/local/nginx 目录下,主要的配置文件为conf下的nginx.conf

    nginx 的启动文件在 sbin目录下的nginx文件。

    2. centos安装

    • 安装编译工具及库文件
    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
    
    • 安装 PCRE
    $ wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
    $ tar zxvf pcre-8.35.tar.gz
    $ cd pcre-8.35
    $ ./configure
    $ make && make install
    $ pcre-config --version
    

    安装PCRE是让nginx支持Rewrite功能。

    • 安装nginx
    $ wget http://nginx.org/download/nginx-1.6.2.tar.gz
    $ tar zxvf nginx-1.6.2.tar.gz
    $ 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
    $ /usr/local/webserver/nginx/sbin/nginx -v
    

    三、启动nginx

    1. 在线安装的启动为:
    $ sudo /etc/init.d/nginx start
    
    1. 源代码安装的启动过程:
    $ cd /usr/local/nginx
    $ sbin/nginx
    

    以上启动可以将nginx的 脚本配置到环境变量,可以更加方便的启动nginx。

    四、nginx配置

    1. 创建nginx运行使用的用户 nginx
    # /usr/sbin/groupadd www 
    # /usr/sbin/useradd -g www www
    
    1. 配置nginx
      nginx配置文件如下:
    user nginx nginx;
    worker_processes 2; #设置值和CPU核心数一致
    error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
    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';
      
    #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 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 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;
     
      #limit_zone crawler $binary_remote_addr 10m;
     #下面是server虚拟主机的配置
     server
      {
        listen 80;#监听端口
        server_name localhost;#域名
        index index.html index.htm index.php;
        root /usr/local/webserver/nginx/html;#站点目录
          location ~ .*.(php|php5)?$
        {
          #fastcgi_pass unix:/tmp/php-cgi.sock;
          fastcgi_pass 127.0.0.1:9000;
          fastcgi_index index.php;
          include fastcgi.conf;
        }
        location ~ .*.(gif|jpg|jpeg|png|bmp|swf|ico)$
        {
          expires 30d;
      # access_log off;
        }
        location ~ .*.(js|css)?$
        {
          expires 15d;
       # access_log off;
        }
        access_log off;
      }
    
    }
    
    1. 检查配置文件nginx.conf的正确性
    # nginx/sbin/nginx -t
    

    五、nginx其它命令

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

    遇到的问题:

    1. nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file解决办法
    ln -s /usr/local/lib/libpcre.so.1 /lib64
    32位系统则:
    ln -s /usr/local/lib/libpcre.so.1 /lib
    
    1. Linux非root用户如何使用80端口启动程序
    1.使用非80端口启动程序,然后再用iptables做一个端口转发。 
    
      iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 
    假设我们需要启动的程序是nginx,那么这么做也可以达到目的。 
    
    一开始我们查看nginx的权限描述: 
    
    -rwxr-xr-x 1 nginx dev 2408122 Sep  5 16:01 nginx 
    
    这个时候必然是无法正常启动的。 
    
    首先修改文件所属用户为root: 
    
    chown root nginx 
    
    然后再加上s权限: 
    
    chmod u+s nginx 
    
    再次查看权限描述的时候: 
    
    -rwsr-xr-x 1 root root 2408122 Sep  5 16:01 nginx 
    
    
  • 相关阅读:
    【自动化学习】自动化误区
    【uwsgi】Mac下python dyld :Library not loaded 问题解决
    【Mysql】Mac版本navicat premium彻底卸载的终端命令:
    【Mysql学习】锁
    【Pytest学习】重复执行用例插件之pytestrepeat的详细使用
    【Python学习】异常传递
    【Jenkins学习】gitlab自动化触发jenkins任务
    一封程序员的情书
    UNION的使用
    为生成的新行添加默认值
  • 原文地址:https://www.cnblogs.com/damonzh/p/5928815.html
Copyright © 2020-2023  润新知