实战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.准备

[root@server1 ~]# yum remove httpd

[root@server1 ~]# yum install gcc

[root@server1 ~]# cd /mnt/

[root@server1 mnt]# ls

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

[root@server1 mnt]# tar -zxf nginx-1.9.14.tar.gz         #解压

[root@server1 mnt]# ls

nginx-1.9.14  nginx-1.9.14.tar.gz

[root@server1 mnt]# vim nginx-1.9.14/src/core/nginx.h 

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

[root@server1 mnt]# vim nginx-1.9.14/auto/cc/gcc 

   # debug

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

[root@server1 mnt]# groupadd -g 666 nginx

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


    2. 安装

[root@server1 mnt]# yum install pcre-devel openssl-devel -y

[root@server1 mnt]# cd nginx-1.9.14/

[root@server1 nginx-1.9.14]# ./configure \

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

> --with-http_ssl_module \

> --with-http_sub_module \

> --with-http_stub_status_module

[root@server1 nginx-1.9.14]# make           ##编译

[root@server1 nginx-1.9.14]# make install    ##安装

[root@server1 nginx-1.9.14]# ls /opt/lnmp/nginx/       #安装完成查看           

conf  html  logs  sbin 


    3.配置

[root@server1 nginx-1.9.14]# cd /opt/lnmp/nginx/

[root@server1 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 }

[root@server1 nginx]# vim /etc/profile

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

[root@server1 nginx]# source /etc/profile

[root@server1 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

[root@server1 nginx]# nginx       #启动nginx

 nginx -s reload     #重起

 ngnix -s  stop      #关闭

测试:

[root@server1 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

[root@server1 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>

[root@server1 nginx]# cd html/        #默认发布目录

[root@server1 html]# ls

50x.html  index.html

网页测试:

wKiom1fUs5zzJAsFAAB47bHrlCQ985.png



    4.添加https

[root@server1 nginx]# pwd

/opt/lnmp/nginx

[root@server1 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;

          }

        }

      }

[root@server1 nginx]# cd /etc/pki/tls/certs/

[root@server1 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 []:upsun_sun@163.com

[root@server1 certs]# cp cert.pem /opt/lnmp/nginx/conf/

[root@server1 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

[root@server1 certs]# nginx -s reload

测试:

wKioL1fUtVSjZ7iDAAB-wsiNMFk954.png



    5.虚拟主机

[root@server1 nginx]# pwd

/opt/lnmp/nginx

[root@server1 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;

        }

        }

[root@server1 nginx]# mkdir -p /virtual/willis/html

[root@server1 nginx]# mkdir -p /virtual/linux/html

[root@server1 nginx]# echo www.willis.com>/virtual/willis/html/index.html

[root@server1 nginx]# echo www.linux.com>/virtual/linux/html/index.html

[root@server1 nginx]# vim /etc/hosts

    172.25.254.1  www.willis.com

    172.25.254.1  www.linux.com                             

[root@server1 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

[root@server1 nginx]# nginx -s reload

测试:  


wKiom1fUt_mh0PFBAAAe7eYWgD8760.png


wKioL1fUt_mT8JW1AAAfzYqAJnc717.png



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

[root@server1 nginx]# pwd

/opt/lnmp/nginx

[root@server1 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;

        }

    }


测试:

wKioL1fUutnhWwlRAAAwW6kZaoA484.png



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

[root@server1 nginx]# pwd

/opt/lnmp/nginx

[root@server1 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;

    }

    }

[root@server1 nginx]# mkdir -p /virtual/login/html

[root@server1 nginx]# echo login.willis.com>/virtual/login/html/index.html

[root@server1 nginx]# vim /etc/hosts

   login.willis.com

[root@server1 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

[root@server1 nginx]# nginx -s reload

测试:


wKiom1fUveOx9At8AABmC0KMUc4920.png


wKioL1fUveKTnLWaAAA0Fyo43JM386.png


本文转自willis_sun 51CTO博客,原文链接:http://blog.51cto.com/willis/1851558,如需转载请自行联系原作者

相关文章
|
8天前
|
移动开发 前端开发 JavaScript
前端vue2、vue3去掉url路由“ # ”号——nginx配置(一)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
64 0
|
8天前
|
JavaScript 前端开发 应用服务中间件
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
26 0
|
8天前
|
前端开发 JavaScript 应用服务中间件
前端vue2、vue3去掉url路由“ # ”号——nginx配置(二)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
72 0
|
3天前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
|
3天前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
|
4天前
|
负载均衡 安全 应用服务中间件
nginx配置ssl和反向代理的配置代码
【5月更文挑战第2天】nginx配置ssl和反向代理的配置代码
22 3
|
7天前
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了&quot;http://&quot;。修正方法是删除上游服务器列表和proxy_pass中的&quot;http://&quot;。问题解决后,Nginx服务应能正常启动。
47 4
解决nginx配置负载均衡时invalid host in upstream报错
|
8天前
|
应用服务中间件 nginx
nginx配置集群轮训策略
nginx配置集群轮训策略
426 0
|
8天前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
8天前
|
应用服务中间件 nginx Docker
docker安装nginx
`docker search`找镜像,`pull`下载,后台 `-d` 运行容器,命名 `--name`,映射端口 `-p`。本机测试,确保服务器安全组开放端口,公网通过`http://ip:port`访问。用`docker stop id`停止容器。[查看详情](https://blog.csdn.net/javayoungcoolboy/article/details/134976510)