环境:

  centos 7

  防火墙关闭

  Selinx关闭

Nginx Web安装
  安装依赖库
    yum install pcre-devel pcre gcc gcc-c++ zlib zlib-devel openssl openssl-devel -y (pcre库主要用于nginx正则表达)
  下载Nginx源码包
    cd /softwares
    wget -c http://nginx.org/download/nginx-1.4.2.tar.gz
    tar -xvzf nginx-1.4.2.tar.gz
  预编译、编译Nginx
    cd nginx-1.4.2
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    make && make install
  检查nginx是否安装正确
    /usr/local/nginx/sbin/nginx  -t    # 返回OK即为安装成功

nginx.conf配置文件详解 (cd /usr/local/nginx/conf)

#user  nobody;      # Nginx用户及组
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; # pid(进程标识符):存放路径 events {
worker_connections 1024;
# 每个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。
# 每个进程允许的最多连接数,nginx最大连接数=worker连接数*worker进程数
} #设定http服务器
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 logs/access.log main; sendfile on;
# 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,
# 如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。
# 注意:如果图片显示不正常把这个改成off
#tcp_nopush on; # 激活参数可把httpresponse header和文件的开始放在一个文件里发布,减少网络报文段数量,防止网络阻塞 #keepalive_timeout 0;
# 连接超时时间,单位是秒。
# 客户端到服务器端的连接持续有效时间,当出现对服务器的后继请求时,keepalive-timeout功能可避免建立或重新建立连接
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$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# 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;
# server_name localhost; # ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on; # location / {
# root html;
# index index.html index.htm;
# }
#} }

  编辑nginx.conf配置文件
    cd /usr/local/nginx/
    vim nginx.conf

#user  nobody;
worker_processes 1; #error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections 1024;
} 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 logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout 0;
keepalive_timeout 65; #gzip on; server {
listen 80;
server_name www.myb.com localhost; location / {
root html;
index index.html index.htm;
}
}
}

  启动nginx
  检查是否有80端口被占用(如若有80端口被启用,首先关掉80端口的相应服务,一般是apach服务)
  netstat -tnl
  netstat -tnl | grep 80    # 没有结果显示,便为正常
  /usr/local/nginx/sbin/nginx    # 启动nginx,此处直接回车即可,没有start
  ps -ef | grep nginx

浏览器输入nginx服务器地址:192.168.168.6

Nginx 虚拟主机配置

 修改nginx.conf配置文件的server段内容如下:

#virtual hosts config 2014/5/18
server {
listen 80;
server_name www.a.com; #access_log logs/host.access.log main; location / {
root html/a;
index index.html index.htm;
} server {
listen 80;
server_name www.b.com; #access_log logs/host.access.log main; location / {
root html/b;
index index.html index.htm;
}
}

  mkdir –p /usr/local/nginx/html/{a,b}
  cd /usr/local/nginx/html/a
  vim index.html # 在目录a和b中分别写入不同的index.html

  /usr/local/nginx/sbin/nginx -t
  /usr/local/nginx/sbin/nginx -s reload # 平滑重启

在windows的hosts文件中添加虚拟主机域名
在浏览器中访问虚拟主机

升级Nginx版本

  cd /softwares

  wget http://www.nginx.org/download/nginx-1.6.1.tar.gz

  /usr/local/nginx/sbin/nginx -V # 查看升级之前旧版本的configure选项

  编译新版本的Nginx

    tar zxvf nginx-1.6.1.tar.gz
    cd nginx-1.6.1
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    make
    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old # 备份旧版本的nginx的执行程序
    cp /usr/src/nginx-1.6.1/objs/nginx /usr/local/nginx/sbin/ # 替换旧的Nginx的执行程序
    kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
      # 使nginx的旧版本停止接收请求,由Nginx新版本接替,且老进程处理完所有请求,关闭所有连接后停止服务
    ls /usr/local/nginx/logs/ # 查看nginx日志目录会生成一个nginx.pid.oldbin文件,存放旧版本nginx 的pid号
    /usr/local/nginx/sbin/nginx -t # 检查新版本Nginx是否正常
    /usr/local/nginx/sbin/nginx -s reload # 平滑重启
    /usr/local/nginx/sbin/nginx -v # 查看升级升级后的版本
    netstat -aupt | grep nginx # 查看服务运行状态

reboot操作系统后,重启nginx服务报错:

报错处理:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

Centos 7.x 源码编译搭建Nginx的更多相关文章

  1. CentOS 6.5 源码编译搭建LNMP(三台独立主机实现)

    搭建前准备: 1.三台独立主机 nginx:192.168.1.102 php-fpm:192.168.1.105 mysql:192.168.1.103 2.相关软件的源码包 nginx:nginx ...

  2. CentOS 6.5 源码编译搭建LAMP(两台独立主机实现)

    搭建前准备: 1.两台独立主机 httpd:192.168.1.105 php-fpm:192.168.1.105 mariadb:192.168.1.103 2.相关软件的源码包 httpd:htt ...

  3. Centos 7源码编译搭建Nginx

    一.Nginx入门介绍 1. Nginx(engine x):[ˈendʒɪnks] 2. Nginx 是 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版 ...

  4. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  5. CentOS 7.4 源码编译安装 Redis

    一.CentOS 7.4  源码编译安装 Redis 1.下载源码并解压 wget http://download.redis.io/releases/redis-4.0.10.tar.gz tar ...

  6. CentOS7 源码编译安装Nginx

    源码编译安装nginx     1.下载nginx源码包(这里以nginx-1.18.0为例) wget http://nginx.org/download/nginx-1.18.0.tar.gz 2 ...

  7. 源码编译安装nginx及设置开机启动项

    1.上传nginx文档:解压到/data目录下,并安装依赖包tar xf nginx-1.20.1.tar.gz -C /data/cd /data/nginx-1.20.1/ && ...

  8. Centos7通过yum跟源码编译安装Nginx

    源码编译安装 http://nginx.org/en/download.html 到官网下载,然后用XFTP上传到root目录 把文件解压出来 tar -zxvf nginx-1.16.0.tar.g ...

  9. centos 6.5源码编译安装subversion 1.8.10

    一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...

随机推荐

  1. 为什么要阅读——兼分享《首先,打破一切常规》[中译文]:世界顶级管理者的成功秘诀/(美)马库斯·白金汉,(美)柯特·科夫曼 著

    <ctrlno=255632">首先,打破一切常规>[中译文]:世界顶级管理者的成功秘诀/(美)马库斯·白金汉,(美)柯特·科夫曼 著:鲍世修 等译 下载地址:http:/ ...

  2. oracle加入联合主键

    alter table tablename add constraint unionkeyname primary key (column1,column2); 上面语句中: tablename为要加 ...

  3. C语言指针实现字符串的反转

    题目要求: 编敲代码:从键盘随意输入一个字符串,输出该字符串. 然后.将该字符串逆序存放后再输出,要求用字符指针完毕. 代码: //解法一 #include <stdio.h> #incl ...

  4. 心跳机制tcp keepalive的讨论、应用及“断网”、"断电"检测的C代码实现(Windows环境下)

    版权声明:本文为博主原创文章,转载时请务必注明本文地址, 禁止用于任何商业用途, 否则会用法律维权. https://blog.csdn.net/stpeace/article/details/441 ...

  5. bzoj 3743 [ Coci 2015 ] Kamp —— 树形DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3743 一开始想到了树形DP,处理一下子树中的最小值,向上的最小值,以及子树中的最长路和向上的 ...

  6. google搜索引擎使用方法

    搜索引擎命令大全!这是一个我最喜欢的Google搜索技巧的清单: link:URL = 列出到链接到目标URL的网页清单. related:URL = 列出于目标URL地址有关的网页. site:ht ...

  7. HTTP权威协议笔记-10.HTTP-NG

    1.HTTP发展中存在的问题 复杂性   其连接.报文.及功能逻辑之间的混合使用相当复杂,使用容易出错 可扩展性 传统流行下来的http应用很难实现扩展性,且无法兼容 性能      高延时.低吞吐 ...

  8. P1966 火柴排队(逆序对)

    P1966 火柴排队 题目描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为: ∑(ai-bi) ...

  9. ASP之ViewState和IsPostBack

    没怎么写过ASPX页面,今天在做增删改的界面的时候,修改出了问题. 根据传过来的ObjectID加载页面数据,赋值给TextBox控件后,修改控件的值回写数据库,发现值没有变化. 简单的例子如下: 然 ...

  10. Prism.Interactivity 之 PopupWindowAction 用法简记

    PopupWindow通过InteractionRequestTrigger(EventTrigger的派生类)侦听目标对象(InteractionRequest<T>类型)的Raised ...