Nginx服务(2)——Nginx源码安装及第一个静态web服务器

一、nginx的安装

步骤一:在官网上下载nginx安装包并解压

nginx下载地址

tar zxf nginx-1.17.4.tar.gz

步骤二:认识nginx目录中的文件
在这里插入图片描述

1)auto目录:里面有4个子目录,cc是编译使用的,os是判断操作系统类型的,其他都是辅助configure编译的,也就是操作系统有什么特性供nginx使用
2)CHANGES:各版本的改变,bug修复等信息
  CHANGES.ru:nginx作者是俄罗斯人,这是俄罗斯版本
3)conf: 为了方便运维配置,conf目录里有示例文件,安装好后会拷贝到安装目录
4)configure:编译
5)contrib:提供nginx语法检测字体
   cp -r contrib/vim/* ~/.vim #家目录下如果没有.vim目录,手动新建
6)html:默认发布目录,50x.html是报500错误时的页面
7) src:源码目录
8) 编译完成后会生成一个中间目录objs,里面有个ngx_modules.c,表示编译进nginx的模块,可以打开看一下
9)make完成后再看objs目录,又有新文件

步骤三:修改配置文件 /nginx-1.17.8/src/core/nginx.h

vim  nginx-1.17.4/src/core/nginx.h

#define NGINX_VER          "nginx/" NGINX_VERSION
改为:
#define NGINX_VER          "nginx/"	 

步骤四:修改源码编译gcc配置文件

在此Debug模式模式会插入许多追踪和ASSERT之类的信息,在正常编译过程中结束,会产生几兆大小的包,我们可以在编译之前关闭debug模式,这样在编译结束,只会产生几百K左右的包大小。

vim auto/cc/gcc

# debug
#CFLAGS="$CFLAGS -g" ##本行注释掉,关闭debug日志模式  

在这里插入图片描述

步骤五:安装编译环境

yum install gcc openssl-devel pcre-devel -y

步骤六:编译

./configure \
###自定义配置:
--prefix=/usr/local/nginx  \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

编译成功界面:
在这里插入图片描述

注意这里的参数说明:

--prefix=PATH 
	## 指定nginx的安装目录。默认 /usr/local/nginx
--with-http_realip_module 
	##通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如X-Real-IP 或 X-Forwarded-For)
	##意义在于能够使得后台服务器记录原始客户端的IP地址
--with-http_ssl_module 
	##使用https协议模块。默认情况下,该模块没有被构建。前提是openssl与openssl-devel已安装
--without-http_rewrite_module 
	##perl正则表达式使用在location指令和ngx_http_rewrite_module模块中。

步骤七:编译安装

make && make install 

步骤八:启动脚本做软链接

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

步骤九:修改配置文件,设置nginx为所有人所有组,并进行语法检测

vim /usr/local/nginx/conf/nginx.conf
user  nginx nginx;

在这里插入图片描述

检查语法文件

nginx -t 

此是报如下错误:

nginx: [emerg] getpwnam(“nginx”) failed in /usr/local/nginx/conf/nginx.conf:2
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

是因为没有建立用户nginx
解决:

useradd nginx #建立用户
nginx -t  #语法检测

此时报错:

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: [emerg] mkdir() “/var/temp/nginx/client” failed (2: No such file or directory)
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

提示没有找到目录/var/temp/nginx/client

解决:

mkdir -p /var/temp/nginx/client
nginx -t

在这里插入图片描述

步骤十:开启nginx服务,查看进程

nginx
ps aux

在这里插入图片描述

二、nginx的配置文件和第一个web页面

1.配置文件的解读

在这里插入图片描述

http部分、server部分、location部分,每个部分都是使用"{ }"作为分解线的,而且从缩进可以看出他们有层级关系。

  • http中可以配置多个server,一个server中可以配置多个location,nginx最基础的功能是用来提供http服务的,所以,和http有关的公共配置,可以放置在http模块中,http块中又可以配置多个server。
  • server代表什么呢?每一个server就代表了一个http服务,我们可以同时配置多个server,以便提供多个http服务。如果多个server中存在共同的共用配置,则可以写在http块中,以便多个server共享这些配置。server中又可以有多个location。
  • location,当我们访问一个网络上的资源时,都是通过url访问的,你可以把location当作url的一部分,此处,我们使用url作为示例:
    http://www.westos.org/westos/1234
    上述链接中的“/westos”部分就是一个location,我们可以通过location将url中的路径和服务器的某个目录建立起关联关系

在这里插入图片描述

在这里插入图片描述

2.第一个web界面

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

发布了99 篇原创文章 · 获赞 3 · 访问量 1612

猜你喜欢

转载自blog.csdn.net/weixin_45784367/article/details/104534153