CentOS7编译安装nginx

一、环境介绍

VMware虚拟机

新装centos7

IP地址为192.168.1.1 

nginx-1.9.9源码包

防火墙关闭状态

二、准备工作

yum -y update
yum -y upgrade

三、解决依赖

1、安装gcc

gcc是linux下的编译器在此不多做解释,感兴趣的小伙伴可以去查一下相关资料,它可以编译 C,C++,Ada,Object C和Java等语言。命令:

gcc -v                #查看当前gcc版本
yum -y install gcc    #安装gcc

2、安装pcre、pcre-devel

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

安装命令:

yum install -y pcre pcre-devel

3、zlib安装

zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

安装命令:

yum install -y zlib zlib-devel

4、安装openssl

openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔。。。。。。

安装命令:

yum install -y openssl openssl-devel

四、下载nginx

下载nginx安装包

wget http://nginx.org/download/nginx-1.9.9.tar.gz 

解压安装包

tar -zxvf  nginx-1.9.9.tar.gz

五、编译安装

执行以下三个命令:

./configure
​
make
​
make install

验证是否安装成功

[root@localhost nginx]# ll /usr/local/nginx
总用量 4
drwxr-xr-x. 2 root root 4096 2月  26 11:31 conf
drwxr-xr-x. 2 root root   40 2月  26 11:31 html
drwxr-xr-x. 2 root root    6 2月  26 11:31 logs
drwxr-xr-x. 2 root root   36 2月  26 11:31 sbin

六、配置nginx

配置nginx.conf,他所在的目录是/usr/local/nginx/conf/   如果找不见也可以搜索:find / | grep nginx.conf

[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf

默认为80端口,不需要更改任何设置就可以访问演示页面。

可以按照自己服务器的端口使用情况来进行配置,ESC键,wq!强制保存并退出

七、启动nginx服务

cd /usr/local/nginx/sbin    #切换目录
./nginx                     #启动nginx命令
ps -ef | grep nginx         #查看进程

八、访问网页验证

访问虚拟机IP 192.168.1.1

附nginx.conf配置的详细说明

#user  nobody;
worker_processes  1; #工作进程:数目。根据硬件调整,通常等于cpu数量或者2倍cpu数量。
​
#错误日志存放路径
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
​
#pid        logs/nginx.pid; # nginx进程pid存放路径
​
events {
    worker_connections  1024; # 工作进程的最大连接数量
}
​
http {
    include       mime.types; #指定mime类型,由mime.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"';
 
#access_log  logs/access.log  main; #用log_format指令设置日志格式后,需要用access_log来指定日志文件存放路径
                
sendfile        on; #指定nginx是否调用sendfile函数来输出文件,对于普通应用,必须设置on。如果用来进行下载等应用磁盘io重负载应用,可设着off,以平衡磁盘与网络io处理速度,降低系统uptime。
#tcp_nopush     on; #此选项允许或禁止使用socket的TCP_CORK的选项,此选项仅在sendfile的时候使用
 
#keepalive_timeout  0;  #keepalive超时时间
keepalive_timeout  65;
 
#gzip  on; #开启gzip压缩服务
 
#虚拟主机
server {
    listen       80;  #配置监听端口号
    server_name  localhost; #配置访问域名,域名可以有多个,用空格隔开
 
    #charset koi8-r; #字符集设置
 
    #access_log  logs/host.access.log  main;
 
    location / {
        root   html;
        index  index.html index.htm;
    }
    #错误跳转页
    #error_page  404              /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$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
    #    root           html; #根目录
    #    fastcgi_pass   127.0.0.1:9000; #请求转向定义的服务器列表
    #    fastcgi_index  index.php; # 如果请求的Fastcgi_index URI是以 / 结束的, 该指令设置的文件会被附加到URI的后面并保存在变量$fastcig_script_name中
    #    fastcgi_param  SCRIPT_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 {
    #    deny  all;
    #}
}
```
​
 
​
```
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;
 
#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}
```
​
 
​
```
# HTTPS server
#
#server {
#    listen       443 ssl;  #监听端口
#    server_name  localhost; #域名
 
#    ssl_certificate      cert.pem; #证书位置
#    ssl_certificate_key  cert.key; #私钥位置
 
#    ssl_session_cache    shared:SSL:1m;
#    ssl_session_timeout  5m; 
 
#    ssl_ciphers  HIGH:!aNULL:!MD5; #密码加密方式
#    ssl_prefer_server_ciphers  on; # ssl_prefer_server_ciphers  on; #
```
​
 
​
```
#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}
```
​
}

相关命令:

时间太久,不知道之前nginx安装在哪个目录,可以用以下方法:

whereis nginx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章