nginx依赖以下模块:

l  gzip模块需要 zlib 库

l  rewrite模块需要 pcre 库

l  ssl 功能需要openssl库

# tar xzvf nginx-1.9..tar.gz

# yum -y install pcre-devel openssl openssl-devel

# yum -y install zlib

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

  否则启动时会出错“nginx: [emerg] getpwnam(“www”) failed”

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-threads

  注意:如果要访问环境变量,lua方式必须安装模块ngx_lua modulengx_devel_kit module (见https://github.com/openresty/lua-nginx-module#readme,https://github.com/simplresty/ngx_devel_kit,如今随着微服务的流行,nginx+lua作为网关成了必备技能),perl方式必须安装 ngx_http_perl_module module

如果以后要启用https,一定要加上--with-http_ssl_module。

make

make install

2、启动

首先,检查下端口是否被占用:lsof -i:80

[root@iZ23nn1p4mjZ ~]# cd /usr/local/nginx/sbin/
[root@iZ23nn1p4mjZ sbin]# ./nginx
[root@iZ23nn1p4mjZ sbin]# ps axu | grep nginx
root 27514 0.0 0.0 24428 828 ? Ss 10:30 0:00 nginx: master process ./nginx
nobody 27515 0.0 0.0 24848 1416 ? S 10:30 0:00 nginx: worker process
root 27531 0.0 0.0 103256 876 pts/0 S+ 10:30 0:00 grep nginx

3、停止

[root@iZ23nn1p4mjZ sbin]# ./nginx -s quit
[root@iZ23nn1p4mjZ sbin]# ps axu | grep nginx
root 27990 0.0 0.0 103256 876 pts/0 S+ 10:33 0:00 grep nginx

4、强制停止

[root@iZ23nn1p4mjZ sbin]# ./nginx -s stop

5、重新加载配置

[root@iZ23nn1p4mjZ sbin]# ./nginx -s reload

6、查看nginx版本以及编译时候的参数

[root@iZ23nn1p4mjZ sbin]# ./nginx -V
nginx version: nginx/1.9.15
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
configure arguments: --prefix=/usr/local/nginx

-V可以很重要,可以看到configure的时候我们启用哪些模块和参数以及编译的gcc版本信息。

7、主要参数配置

worker_processes  1; #cpu数量

events {

use epoll;

}

keepalive_timeout  65;

sendfile        on;

tcp_nopush     on;

tcp_nodelay     on;

http {

  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;

  server {
     listen 8081;
     server_name localhost;

  注:为什么要把worker进程数量设置得与CPU核心数量一致呢?这正是Nginx与Apache服务器的不同之处。在Apache上每个进程在一个时刻只处理一个请求,因此,如果希望Web服务器拥有并发处理的请求数更多,就要把Apache的进程或线程数设置得更多,通常会达到一台服务器拥有几百个工作进程,这样大量的进程间切换将带来无谓的系统资源消耗。而Nginx则不然,一个worker进程可以同时处理的请求数只受限于内存大小,而且在架构设计上,不同的worker进程之间处理并发请求时几乎没有同步锁的限制,orker进程通常不会进入睡眠状态,因此,当Nginx上的进程数与CPU核心数相等时(最好每一个worker进程都绑定特定的CPU核心),进程间切换的代价是最小的。

8、配置指向后端tomcat

http下增加:

upstream web-admin {
server localhost:8080 fail_timeout=15s;
server localhost:8080 fail_timeout=15s;
server localhost:8080 fail_timeout=15s;
}

location / {
root html;
index index.html index.htm;
proxy_pass http://web-admin;
}

完整:

events {
   worker_connections 1024;
   use epoll;
}

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;
tcp_nodelay     on; #keepalive_timeout 0;
keepalive_timeout 65; #gzip on;
# upstream ebs-k3c-web {
server ebs-k3c-web:8080 fail_timeout=15s;
server ebs-k3c-web:8081 fail_timeout=15s;
server ebs-k3c-web:8082 fail_timeout=15s;
} server {
listen 80;
server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / {
root html;
index index.html index.htm;
}

      location /ebs-k3c-web/ {
        proxy_pass http://ebs-k3c-web;
      }

        #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;
}
}

启动或者重新加载配置,输入http://ip访问。

注在看/etc/init.d/nginx脚本时,发现脚本中存在大量行为(点号 空格  文件名),真没见过如下:

#!/bin/sh

# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc. LC_ALL=C
export LC_ALL . auto/options
. auto/init
. auto/sources test -d $NGX_OBJS || mkdir $NGX_OBJS echo > $NGX_AUTO_HEADERS_H
echo > $NGX_AUTOCONF_ERR

查阅了资料得知:

1、 如果我们要执行某个文件,但是此文件不可执行,此时我们要用chmod u+x file_name来使文件具有可执行权限

2、可是有时我们不想更改此文件的执行权限,但又想执行此文件,可以采用(点号--空格--文件名)的形式来执行一个脚本(只有root用户才可以这么做)

vs编译nginx,参考https://github.com/topcpporg/nginx_vs

https的配置及强制跳转参见nginx配置https并强制http自动跳转到https

centos下nginx安装与配置的更多相关文章

  1. Centos下 Nginx安装与配置

    网上找了好多资料.都很难找全,这里以这个目录为主,进行备注. Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.它最常的用途是提供 ...

  2. centos下Nginx安装和配置多个域名的虚拟主机

    nginx安装步骤,源码编译安装(源码编译,可以自定制更多功能) openssl #user nobody; worker_processes ; #error_log logs/error.log; ...

  3. centos下nginx安装和配置

    注:此文是根据前辈的博客和自己实际动手总结出来的,不喜勿喷 1.准备工作 Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下: 1 SSL功能需要 ...

  4. CentOS 下 redis 安装与配置

    CentOS 下 redis 安装与配置   1.到官网上找到合适版本下载解压安装 [root@java src]# wget -c http://redis.googlecode.com/files ...

  5. centos7系统下nginx安装并配置开机自启动操作

    准备工作 我的centos7系统是最小化安装的, 缺很多库, 首先安装必须的运行库 ? 1 2 3 4 5 6 7 8 9 10 11 yum install wget gcc gcc-c++ pcr ...

  6. nginx在CentOs下的安装及配置

    前言: 先介绍一下nginx: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强, ...

  7. windows下nginx安装、配置与使用(转载)

    目前国内各大门户网站已经部署了Nginx,如新浪.网易.腾讯等:国内几个重要的视频分享网站也部署了Nginx,如六房间.酷6等.新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx ...

  8. windows下nginx安装、配置与使用

    目前国内各大门户网站已经部署了Nginx,如新浪.网易.腾讯等:国内几个重要的视频分享网站也部署了Nginx,如六房间.酷6等.新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx ...

  9. CentOS下nginx+php的配置及nginx开机启动配置

    关闭防火墙 (不然外链接是访问不了 apache) service iptables stop 关闭安全系统 SELinux( 不然报403 访问页面错误 ) 1.Nginx安装主要在于配置文件的修改 ...

随机推荐

  1. html中label及加上属性for之后的用法

    定义和用法 <label> 标签为 input 元素定义标签(label). label 元素不会向用户呈现任何特殊的样式.不过,它为鼠标用户改善了可用性,因为如果用户点击 label 元 ...

  2. 网站编辑须知9个SEO技巧

    1. 文章当中最好需要出现一个网站核心关键词所谓的网站核心的关键词就是指与网站内容相关性比较高并且是比较受欢迎的关键词,当然还有相当高的转化率 2. 文章标题当中需要出现关键词.关键字在标题标签< ...

  3. kubernetes实战(十六):k8s高可用集群平滑升级 v1.11.x 到v1.12.x

    1.基本概念 升级之后所有的containers会重启,因为hash值会变. 不可跨版本升级. 2.升级Master节点 当前版本 [root@k8s-master01 ~]# kubeadm ver ...

  4. sql执行顺序与性能优化小技巧(一)

    关于sql条件匹配对执行效率影响测试 首先,创建一个标量函数create function ff_test() returns int as begin declare @i int=0 while( ...

  5. oracle(六) physical read and logical read

    1.物理读:从disk到buffer cache.其产生的主要原因是: (1) 在数据库高速缓存中不存在这些块 (2) 全表扫描 (3)磁盘排序 2.oracle中读写disk的单位是block.而用 ...

  6. UILabel富文本 段落格式以及UILabel添加图片

    之前文本整理有一点乱,这边重新整理一下,下面是效果图,一共两个UILabel, 富文本整理: /*NSForegroundColorAttributeName设置字体颜色,对象UIColor; NSP ...

  7. POJ:2049Finding Nemo(bfs+优先队列)

    http://poj.org/problem?id=2049 Description Nemo is a naughty boy. One day he went into the deep sea ...

  8. 重读《Java编程思想》

    相关最新代码已上传至我的GitHub了(https://github.com/WenyangSun/ThinkingInJava),后续例子没有在博客上更新. 1.在类的内部,变量定义的先后顺序决定了 ...

  9. css定位浮动总结

    定位:定位在中间,放大缩小时也不会跑偏. position:absolute; top: 50%; left: 50%; margin: -270px 0 0 -455px; 解释:定位后,设百分比的 ...

  10. DNS解析原理和流程

    DNS解析原理和流程   DNS解析其实就是将IP地址(202.96.134.133)变成域名(www.xxxxx.com)   网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所 ...