实战Nginx源码编译安装与配置

实验环境:RHEL7.0    server1.example.com  172.25.254.1

实验内容:   1.准备

                     2. 安装

                     3.配置

                     4.添加https

                     5.虚拟主机

                     6.<<nginx 监控小插件>>网站信息统计

                     7.网页重写(自动转换到HTTPS)

源码包:nginx-1.9.14.tar.gz

    1.准备

[[email protected] ~]# yum remove httpd

[[email protected] ~]# yum install gcc

[[email protected] ~]# cd /mnt/

[[email protected] mnt]# ls

nginx-1.9.14.tar.gz            ### 下载源码包(nginx-1.9.14.tar.gz) 

[[email protected] mnt]# tar -zxf nginx-1.9.14.tar.gz         #解压

[[email protected] mnt]# ls

nginx-1.9.14  nginx-1.9.14.tar.gz

[[email protected] mnt]# vim nginx-1.9.14/src/core/nginx.h 

#define NGINX_VER       "steven/"  #(版本隐藏)

[[email protected] mnt]# vim nginx-1.9.14/auto/cc/gcc 

# debug

#CFLAGS="$CFLAGS -g"    #关闭debug(由于使用gcc编译器,所以关闭gcc编译时安装的debug功能)

[[email protected] mnt]# groupadd -g 666 nginx

[[email protected] mnt]# useradd -s /sbin/nologin -d /opt/lnmp/ nginx -u 666 -g 666      #新建用户身份

    2. 安装

[[email protected] mnt]# yum install pcre-devel openssl-devel -y

[[email protected] mnt]# cd nginx-1.9.14/

[[email protected] nginx-1.9.14]# ./configure \

> --prefix=/opt/lnmp/nginx \

> --with-http_ssl_module \

> --with-http_sub_module \

> --with-http_stub_status_module

[[email protected] nginx-1.9.14]# make           ##编译

[[email protected] nginx-1.9.14]# make install    ##安装

[[email protected] nginx-1.9.14]# ls /opt/lnmp/nginx/       #安装完成查看  

conf  html  logs  sbin

3.配置

[[email protected] nginx-1.9.14]# cd /opt/lnmp/nginx/

[[email protected] nginx]# vim  conf/nginx.conf

2 user  nginx nginx;##用户和组,可以只写用户

3 worker_processes  2;##cpu个数,不能超过lscpu显示cpu个数

12 events {

13         use epoll;  ##nginx epoll 采用异步非阻塞模式 apache --select 同步阻塞机制 io复用模型类型

14         worker_connections  4096;##连接数

15 }

[[email protected] nginx]# vim /etc/profile

export PATH=$PATH:/opt/lnmp/nginx/sbin    #添加nginx执行路径

[[email protected] nginx]# source /etc/profile

[[email protected] nginx]# nginx -t           #检查nginx有无错误

nginx: the configuration file /opt/lnmp/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /opt/lnmp/nginx/conf/nginx.conf test is successful

[[email protected] nginx]# nginx       #启动nginx

nginx -s reload     #重起

ngnix -s  stop      #关闭

测试:

[[email protected] nginx]# curl -I localhost   ##检测http协议提供程序

HTTP/1.1 200 OK

Server: willis/

Date: Sun, 11 Sep 2016 01:26:39 GMT

Content-Type: text/html

Content-Length: 612

Last-Modified: Sun, 11 Sep 2016 01:19:44 GMT

Connection: keep-alive

ETag: "57d4b130-264"

Accept-Ranges: bytes

[[email protected] nginx]# curl  localhost  

<!DOCTYPE html>

<html>

<head>

<title>Welcome to nginx!</title>

<style>

body {

width: 35em;

margin: 0 auto;

font-family: Tahoma, Verdana, Arial, sans-serif;

}

</style>

</head>

<body>

<h1>Welcome to nginx!</h1>

<p>If you see this page, the nginx web server is successfully installed and

working. Further configuration is required.</p>

<p>For online documentation and support please refer to

<a href="http://nginx.org/">nginx.org</a>.<br/>

Commercial support is available at

<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>

</body>

</html>

[[email protected] nginx]# cd html/        #默认发布目录

[[email protected] html]# ls

50x.html  index.html

网页测试:



    4.添加https

[[email protected] nginx]# pwd

/opt/lnmp/nginx

[[email protected] nginx]# vim conf/nginx.conf

# HTTPS server               #开启HTTPS功能

server {

listen       443 ssl;

server_name  localhost;

ssl_certificate      cert.pem;

ssl_certificate_key  cert.pem;      #修改证书名

ssl_session_cache    shared:SSL:1m;

ssl_session_timeout  5m;

ssl_ciphers  HIGH:!aNULL:!MD5;

ssl_prefer_server_ciphers  on;

location / {

root   html;

index  index.html index.htm;

}

}

}

[[email protected] nginx]# cd /etc/pki/tls/certs/

[[email protected] certs]# make cert.pem      #新建证书

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:shaanxi

Locality Name (eg, city) [Default City]:xi‘an

Organization Name (eg, company) [Default Company Ltd]:redhat

Organizational Unit Name (eg, section) []:Linux

Common Name (eg, your name or your server‘s hostname) []:localhost

Email Address []:[email protected]

[[email protected] certs]# cp cert.pem /opt/lnmp/nginx/conf/

[[email protected] certs]# nginx -t

nginx: the configuration file /opt/lnmp/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /opt/lnmp/nginx/conf/nginx.conf test is successful

[[email protected] certs]# nginx -s reload

测试:



    5.虚拟主机

[[email protected] nginx]# pwd

/opt/lnmp/nginx

[[email protected] nginx]# vim conf/nginx.conf

在http{}中添加

server {

listen       80;

server_name  www.willis.com;

location / {

root   /virtual/willis/html;

index  index.html;

}

}

server {

listen       80;

server_name  www.linux.com;

location / {

root   /virtual/linux/html;

index  index.html;

}

}

[[email protected] nginx]# mkdir -p /virtual/willis/html

[[email protected] nginx]# mkdir -p /virtual/linux/html

[[email protected] nginx]# echo www.willis.com>/virtual/willis/html/index.html

[[email protected] nginx]# echo www.linux.com>/virtual/linux/html/index.html

[[email protected] nginx]# vim /etc/hosts

172.25.254.1  www.willis.com

172.25.254.1  www.linux.com

[[email protected] nginx]# nginx -t

nginx: the configuration file /opt/lnmp/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /opt/lnmp/nginx/conf/nginx.conf test is successful

[[email protected] nginx]# nginx -s reload

测试:  







    6.<<nginx 监控小插件>>网站信息统计

[[email protected] nginx]# pwd

/opt/lnmp/nginx

[[email protected] nginx]# vim conf/nginx.conf

server {

listen       80;

server_name  localhost;

location / {

root   html;

index  index.html index.htm;

}

location /message {             # 添加

stub_status on;

access_log off;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}



测试:



    7.网页重写(自动转换到HTTPS)

[[email protected] nginx]# pwd

/opt/lnmp/nginx

[[email protected] nginx]# vim conf/nginx.conf

server {

listen       80;

server_name  login.willis.com;

rewrite ^(.*)$ https://$host$1 permanent;

location / {

root   /virtual/login/html;

index  index.html;

}

}

[[email protected] nginx]# mkdir -p /virtual/login/html

[[email protected] nginx]# echo login.willis.com>/virtual/login/html/index.html

[[email protected] nginx]# vim /etc/hosts

login.willis.com

[[email protected] nginx]# nginx -t

nginx: the configuration file /opt/lnmp/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /opt/lnmp/nginx/conf/nginx.conf test is successful

[[email protected] nginx]# nginx -s reload

测试:







本文出自 “技术人生,简单不简单” 博客,请务必保留此出处http://willis.blog.51cto.com/11907152/1851558

时间: 2024-10-14 13:30:54

实战Nginx源码编译安装与配置的相关文章

生产场景:实战nginx源码编译安装

生产场景:nginx实战安装 一.准备环境: 1.1 操作系统:centos 6.7     安装常用软件 yum install tree telnet dos2unix sysstat lrzsz nc nmap zip unzip -y 1.2 官网下载ngnx源码包nginx-1.12.2.tar.gz,并隐藏nginx版本号和修改nginx软件名 下载nginx源码包nginx-1.12.2.tar.gz,并隐藏nginx版本号和修改nginx软件名(此步骤省略). 二.开始安装ngi

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

什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础软件包,在这个基础环境上我们可以搭建任何使用PHP/Perl/Python等语言的动态网站,如商务网站.博客.论坛和开源Web应用程序软件等,它是互联网上被广泛使用的Web网站架构之一. 部署方式 从网站规模大小(访问流量.注册用户等)角度来看,LNMP架构可以使用单机部署方式和集群部署方式.单机部

Nginx 源码编译安装

Nginx 源码编译安装环境 Centos7 Nginx1.8.1    下载地址:http://nginx.org/download/ 选择自己想要的版本 我这边使用1.8.1,下载地址:http://nginx.org/download/nginx-1.8.1.tar.gz 1.编译前安装环境 [[email protected]_30 ~]# yum groupinstall "Development Tools" -y                #安装开发工具包 [[ema

Nginx源码编译安装选项

[Nginx源码编译过程] make是用来编译的,它从Makefile中读取指令,然后编译. make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置. configure命令是用来检测你的安装平台的目标特征的.它定义了系统的各个方面,包括nginx的被允许使用的连接处理的方法,比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本,执行结束时,它会创建一个Makefile文件. [Nginx的configure命令支持以下参数] --p

【MySQL】源码编译安装和配置MySql 5.5.32(单实例)

[需求描述] 在CentOS环境中,通过编译源码的方式,安装并且配置“单实例”的MySQL5.5.32数据库. MySQL的安装目录为:/application/mysql-5.5.32 MySQL数据文件的安装目录为:/application/mysql-5.5.32/data MySQL默认的字符编码为:UTF8 [环境参数] VMware:10.0.1 Host:Win7 DB:MySql 5.5.32 编译工具:cmake-2.8.8.tar.gz 其他依赖:ncurses-devel-

ubuntu环境下nginx源码编译安装

1.更新系统 sudo apt-get update && sudo apt-get upgrade 2.安装nginx的依赖包  zlib pcre openssl(可以源码安装也可以直接系统安装) sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev build-essential 3.下载openssl源码包 wget http://www.openssl.org/source/openssl-1.0.2a.

nginx 源码编译安装并编写服务启动脚本

1. 使用xshell将nginx源码包上传到server 2. 安装依赖的软件包工具 zlib-devel?? pcre-devel?? gcc? gcc-c++ yum -y install zlib-devel pcere-devel gcc gcc-c++ 验证一下: 3. 指定nginx的运行用户 (创建nginx用户不使其登录系统.-M不创建宿主目录) [[email protected] ~]# useradd -s /sbin/nologin -M nginx 4. 编译安装ng

Apache2.2.17源码编译安装以及配置虚拟主机

WEB服务(一) 理论部分: Apache服务主要是多个服务的组合,名称来自于A Patchy Server 意思是基于原有的WEB程序的代码修改(补丁)后形成的服务器程序 1995年发布第一个版本1.0一直有Apache Group负责该项目的维护和管理1999年成立了Apache的软件基金会官方网站是http://www.apache.org/ ASF是非盈利性组织,Apache HTTP Server 就是旗下最著名的软件项目之一 跨平台应用(支持多数操作系统) 支持多字符集 Apache

【Linux】Mysql5.7.12源码编译安装及配置

安装环境 Linux(CentOS7.0 版).boost_1_59_0.tar.gz.mysql-5.7.12.tar.gz MySQL 5.7主要特性: 更好的性能:对于多核CPU.固态硬盘.锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是吾等用户更关心的 更好的InnoDB存储引擎 更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库.此外,GTID在线平滑升级也变得可能 更好的优化器:优化器代码重