源码包安装nginx
一.简介
说明
源码编译安装
环境
CentOS版本:CentOS 7
[nginx-server]
主机名:nginx
系统:centos-7.4
地址:192.168.1.128
软件:nginx-1.16.1
二.安装
1.安装依赖包
[root@nginx ~]# yum -y install gcc make pcre pcre-devel openssl openssl-devel zlib zlib-devel
解释:
gcc 编译器
make 用于编译文件
pcre 让nginx可以用正则表达式,rewrite模块,core模块
openssl 生成证书ssl模块
zlib gzip模块需要
2.下载源码包
[root@nginx ~]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
3.解压
[root@nginx ~]# tar -zxvf nginx-1.16.1.tar.gz
4.创建服务自己用户,不用root
root@nginx ~]# groupadd nginx
root@nginx ~]# useradd -g nginx -s /sbin/nologin nginx
5.编译
[root@nginx ~]# cd nginx-1.16.1 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre
[root@nginx ~]# make && make install
解释:
--user=nginx 指定运行nginx这个程序的用户
--group=nginx 指定运行nginx这个程序的组
--prefix=/usr/local/nginx 指定安装路径,防止分散
--with-http_ssl_module 支持https
--with-http_spdy_modul spdy https的快速访问
--with-http_stub_status_module nginx的信息查询
--with-pcre 地址重写
6.nginx.conf配置文件
Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。main部分设置的指令将影响其它所有部分的设置;server部分的指令主要用于指定虚拟主机域名、IP和端口;upstream的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;location部分用于匹配网页位置(比如,根目录”/“,”/images”,等等)。他们之间的关系式:server继承main,location继承server;upstream既不会继承指令也不会被继承。它有自己的特殊指令,不需要在其他地方的应用。
当前nginx支持的几个指令上下文:
6.1 通用
下面的nginx.conf简单的实现nginx在前端做反向代理服务器的例子,处理js、png等静态文件,jsp等动态请求转发到其它服务器tomcat:
user www www;
worker_processes 4;
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
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"';
#access_log logs/access.log main;
sendfile on;
# tcp_nopush on;
keepalive_timeout 65;
# gzip压缩功能设置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 6;
gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
# http_proxy 设置
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 75;
proxy_send_timeout 75;
proxy_read_timeout 75;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path /usr/local/nginx/proxy_temp 1 2;
# 设定负载均衡后台服务器列表
upstream backend {
#ip_hash;
server 192.168.10.100:8080 max_fails=2 fail_timeout=30s ;
server 192.168.10.101:8080 max_fails=2 fail_timeout=30s ;
}
# 很重要的虚拟主机配置
server {
listen 80;
server_name itoatest.example.com;
root /apps/oaapp;
charset utf-8;
access_log logs/host.access.log main;
#对 / 所有做负载均衡+反向代理
location / {
root /apps/oaapp;
index index.jsp index.html index.htm;
proxy_pass http://backend;
proxy_redirect off;
# 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
#静态文件,nginx自己处理,不去backend请求tomcat
location ~* /download/ {
root /apps/oa/fs;
}
location ~ .*/.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
root /apps/oaapp;
expires 7d;
}
location /nginx_status {
stub_status on;
access_log off;
allow 192.168.10.0/24;
deny all;
}
location ~ ^/(WEB-INF)/ {
deny all;
}
#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;
}
}
## 其它虚拟主机,server 指令开始
}
7.检测配置文件的正确性
[root@nginx ~]# /usr/local/nginx/sbin/nginx -t
测试配置文件书写正常后,出现的测试结果:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
8.查看nginx安装的版本号
[root@nginx ~]# /usr/local/nginx/sbin/nginx -v
[root@nginx ~]# /usr/local/nginx/sbin/nginx -V
解析:
1. -v: 显示 nginx 的版本。
2. -V: 显示 nginx 的版本,编译器版本和配置参数。
三.使用验证
1.启动校验
[root@nginx ~]# nginx -t
如果提示找不到命令not found,则创建软连接
[root@nginx ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
2.启动
[root@nginx ~]# nginx
3.重新读取配置文件
[root@nginx ~]# nginx -s reload
4.如下命令出现welcome nginx是正确的
[root@nginx ~]# curl -I http://127.0.0.1
到此源码部署nginx就结束了。
Yum安装
一.简介
说明
源码编译安装
环境
CentOS版本:CentOS 7
[nginx-server]
主机名:nginx
系统:centos-7.4
地址:192.168.1.129
软件:nginx-1.16.1
二.安装
1.安装基础软件包
[root@nginx ~]# yum -y install net-tools vim tree htop iftop gcc gcc-c++ glibc iotop lrzsz sl wget unzip nmap nc psmisc dos2unix bash-completion bash-completion-extra sysstat rsync nfs-utils httpd-tools
2.添加官方yum源
[root@nginx ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
3.安装nginx
[root@nginx ~]# yum -y install nginx
注释:
默认nginx的程序用户为nginx,可以根据自己需求修改。
4.启动效验
[root@nginx ~]# nginx -t
5.查看nginx安装的版本号
[root@nginx ~]# nginx -v
[root@nginx ~]# nginx -V
解析:
-v: 显示 nginx 的版本。
-V: 显示 nginx 的版本,编译器版本和配置参数。
三.使用验证
1.启动
[root@nginx ~]# nginx
2.如下命令出现welcome nginx是正确的
[root@nginx ~]# curl http://127.0.0.1
3.停止
[root@nginx ~]# nginx -s stop`
4.查看nginx启动情况,nginx监听80端口
[root@nginx ~]# netstat -lnpt | grep nginx
网友评论