栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【nginx】nginx初步使用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【nginx】nginx初步使用

1、使用nginx必备软件 1、GCC编译器

GCC(GNU Compiler Collection)可用来编译C语言程序。

yum install -y gcc

C++来编写Nginx HTTP模块,这时就需要用到G++编译器。

yum install -y gcc-c++
2、PCRE库

PCRE(Perl Compatible Regular Expressions,Perl兼容正则表达式)该库支持正则表达式。如果我们在配置文件nginx.conf里使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP模块要靠它来解析正则表达式。pcre-devel是使用PCRE做二次开发时所需要的开发库,包括头文件等,这也是编译Nginx所必须使用的。

yum install -y pcre pcre-devel
3、zlib库

zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,那么,在编译时就必须把zlib编译进Nginx。同理,zlib是直接使用的库,zlib-devel是二次开发所需要的库。

yum install -y zlib zlib-devel
4、OpenSSL开发库

如果我们的服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么就需要拥有OpenSSL了。另外,如果我们想使用MD5、SHA1等散列函数,那么也需要安装它。

yum install -y openssl openssl-devel
2、安装nginx 1、编译的中间文件目录

objs该目录用于放置在configure命令执行后所生成的源文件及目录,以及make命令执行后生成的目标文件和最终连接成功的二进制文件。默认情况下,configure命令会将该目录命名为objs,并放在Nginx源代码目录下

2、部署目录

该目录存放实际Nginx服务运行期间所需要的二进制文件、配置文件等。默认情况下,该目录为/usr/local/nginx。

3、日志文件存放目录

日志文件通常会比较大,当研究Nginx的底层架构时,需要打开debug级别的日志,这个级别的日志非常详细,会导致日志文件的大小增长得极快,需要预先分配一个拥有更大磁盘空间的目录。

4、开始安装
./configure
make
make install
5、nginx的命令行控制

直接指定启动二进制文件,会默认读取/usr/local/nginx/conf/nginx.conf文件

/usr/local/nginx/sbin/nginx

使用 -c 指定配置文件启动

/usr/local/nginx/sbin/nginx -c /tmp/nginx.conf

使用 -p 参数指定Nginx的安装目录

/usr/local/nginx/sbin/nginx -p /usr/local/nginx/

另行指定全局配置项的启动方式

/usr/local/nginx/sbin/nginx -g 'pid /var/nginx/test.pid'

上面这行命令意味着会把pid文件写到/var/nginx/test.pid中。
-g参数的约束条件是指定的配置项不能与默认路径下的nginx.conf中的配置项相冲突,否则无法启动。就像上例那样,类似这样的配置项:pid logs/nginx.pid,是不能存在于默认的nginx.conf中的。
另一个约束条件是,以-g方式启动的Nginx服务执行其他命令行时,需要把-g参数也带上,否则可能出现配置项不匹配的情形。例如,如果要停止Nginx服务,那么需要执行下面代码:

/usr/local/nginx/sbin/nginx -g 'pid /var/nginx/test.pid' -s stop

使用 -t 测试配置信息是否有错误

/usr/local/nginx/sbin/nginx -t

使用 -t -q 使用-q参数可以不把error级别以下的信息输出到屏幕。

/usr/local/nginx/sbin/nginx -t -q

使用 -v 参数显示版本

/usr/local/nginx/sbin/nginx -v

使用 -s 停止nginx

/usr/local/nginx/sbin/nginx -s stop

优雅的停止

/usr/local/nginx/sbin/nginx -s quit

重新加载配置文件

/usr/local/nginx/sbin/nginx -s reload

日志文件回滚,使用-s reopen参数可以重新打开日志文件,这样可以先把当前日志文件改名或转移到其他目录中进行备份,再重新打开时就会生成新的日志文件。这个功能使得日志文件不至于过大。

/usr/local/nginx/sbin/nginx -s reopen
3、配置内容 1、配置初步体验

直接运行/usr/local/nginx/sbin/nginx,可以启动nginx,访问nginx默认的端口80,可以看到nginx的主页:

经过上面的步骤,显然nginx是可以启动起来了,接下来在nginx.conf中配置一个端口监听端口,访问的时候直接转到百度去。直接在http模块下加server模块

然后重新加载配置文件./nginx -s reload,然后访问http://192.168.101.41:8081直接跳转到了百度

2、关于server_name

在上面新加的配置中,有一个server_name

看到配置的是localhost,现在改为baidu(百度)

然后从新加载后访问,发现依然跳转到了百度
接着再新加一个一样的server,只是把server_name改为xinlang(新浪)proxy_pass改为新浪的官网地址,配置如下:

然后访问192.168.101.41:8081发现依然跳转到了百度,其实这样nginx默认找第一个匹配到的端口。
为了证明这个猜想,将两个配置的位置调换,则访问到了新浪:

实际上这里可以指定匹配哪一个,就是在访问的header中加入一个host=name_server


显然如果都不匹配,就默认找第一个匹配到的监听端口

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/836956.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号