火冰狐 发表于 2018-11-13 06:04:56

nginx 源码安装

安装nginx

  安装pcre库是为了让nginx支持具备URI重写功能的rewrite模块

  

# yum install pcre pcre-devel -y  
# rpm -qapcre pcre-devel
  

  安装nginx 依赖的包 openssl-devel
  

  
# yum install openssl openssl-devel
  
# rpm -qa openssl openssl-devel
  

  

  
> 下载nginx源码包
  

  # wget -q http://nginx.org/download/nginx-1.9.2.tar.gz
  

> 解压  

  # tar xf nginx-1.9.2.tar.gz
  # cd nginx-1.9.2
  

  
> 配置文件
  

  # ./configure --user=nginx --group=nginx --prefix=/application/nginx-1.9.2/ --with-http_stub_status_module --with-http_ssl_module
  

> 安装  

  # make
  # make install
  

> 创建软连接  

  # ln -s /application/nginx-1.9.2/ /application/nginx
  # ls -l /application/nginx
  lrwxrwxrwx 1 root root 25 Jan7 03:16 /application/nginx -> /application/nginx-1.9.2/
  

> 检测nginx 配置文件知否正确  

  # /application/nginx/sbin/nginx -t
  nginx: the configuration file /application/nginx-1.9.2//conf/nginx.conf syntax is ok
  nginx: configuration file /application/nginx-1.9.2//conf/nginx.conf test is successful
  

  
> 启动nginx
  

  # /application/nginx/sbin/nginx
  

> 查看nginx服务对应的端口是否成功启动  

  # lsof -i :80

  COMMANDPIDUSER   FD   TYPE DEVICE>  nginx   3620root    6uIPv427305      0t0TCP :http (LISTEN)
  nginx   3621 nginx    6uIPv427305      0t0TCP :http (LISTEN)
  

> 在防火墙上开端口  

  #查看防火墙上已经开启的端口`
  # firewall-cmd --zone=public --list-port
  #在防火墙上永久开启80端口
  # firewall-cmd --zone=public --add-port=80/tcp --permanent
  #重新载入
  # firewall-cmd --reload
  

> 查看nginx 的目录结构  

  # tree /application/nginx/
  /application/nginx/
  ├── client_body_temp
  ├── conf
  │   ├── fastcgi.conf
  │   ├── fastcgi.conf.default
  │   ├── fastcgi_params
  │   ├── fastcgi_params.default
  │   ├── koi-utf
  │   ├── koi-win
  │   ├── mime.types
  │   ├── mime.types.default
  │   ├── nginx.conf
  │   ├── nginx.conf.default
  │   ├── scgi_params
  │   ├── scgi_params.default
  │   ├── uwsgi_params
  │   ├── uwsgi_params.default
  │   └── win-utf
  ├── fastcgi_temp
  ├── html
  │   ├── 50x.html
  │   └── index.html
  ├── logs
  │   ├── access.log
  │   ├── error.log
  │   └── nginx.pid
  ├── proxy_temp
  ├── sbin
  │   └── nginx
  ├── scgi_temp
  └── uwsgi_temp
  

  
### nginx配置虚拟主机
  
> 编辑Nginx的配置文件
  
```nginxconf
  
http {
  include       mime.types;
  default_typeapplication/octet-stream;
  

  #log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
  #                  '$status $body_bytes_sent "$http_referer" '
  #                  '"$http_user_agent" "$http_x_forwarded_for"';
  

  #access_loglogs/access.logmain;
  

  sendfile      on;
  #tcp_nopush   on;
  

  #keepalive_timeout0;
  keepalive_timeout65;
  

  #gzipon;
  

  server {
  #nginx 默认监听的端口
  listen       80;
  #配置的虚拟主机的域名(测试环境中是自定义的)
  server_namewww.one.com;
  

  #charset koi8-r;
  

  #access_loglogs/host.access.logmain;
  

  location / {
  #新配置的虚拟主机所在根目录
  root   html/www;
  indexindex.html index.htm;
  }
  

  #error_page404            /404.html;
  

  # redirect server error pages to the static page /50x.html
  #
  error_page   500 502 503 504/50x.html;
  location = /50x.html {
  root   html;
  }
  

  # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  #
  #location ~ \.php$ {
  #    proxy_pass   http://127.0.0.1;
  #}
  

  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  #location ~ \.php$ {
  #    root         html;
  #    fastcgi_pass   127.0.0.1:9000;
  #    fastcgi_indexindex.php;
  #    fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
  #    include      fastcgi_params;
  #}
  

  # deny access to .htaccess files, if Apache's document root
  # concurs with nginx's one
  #
  #location ~ /\.ht {
  #    denyall;
  #}
  

  }
  ....
  }
  

  

  修改完了配置文件,我们知道虚拟主机的关键部分是server{}括号中内容

  根据配置的虚拟主机的根目录,创建站点目录和文件,因为Nginx编译安装的时候默认的站定目录是html,所以在改目录下创建
  

# mkdir ../html/www -p  
# echo "http://www.one.com" > ../html/www/index.html
  
# cat ../html/www/index.html
  
http://www.one.com
  

  重新加载配置文件



[*]检查Nginx配置文件语法是否正确  

# ../sbin/nginx -t  
nginx: the configuration file /application/nginx-1.9.2//conf/nginx.conf syntax is ok
  
nginx: configuration file /application/nginx-1.9.2//conf/nginx.conf test is successful

[*]重新加载配置文件  

# ../sbin/nginx -s>
[*]检查Nginx重启加载后的情况  

# ps -ef|grep nginx  
root      10820      10 08:54 ?      00:00:00 nginx: master process /application/nginx/sbin/nginx
  
nginx   11152108200 09:54 ?      00:00:00 nginx: worker process
  
root      11154110880 09:54 pts/1    00:00:00 grep --color=auto nginx

[*]本机的hosts文件解析(不是必须这样做) 和访问测试  

# echo "192.168.85.129 www.one.com" >>/etc/hosts  
# tail /etc/hosts
  
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  
192.168.85.130 www.one.com
  
# curl www.one.com
  
http://www.one.com          #本地测试成功



页: [1]
查看完整版本: nginx 源码安装