[linux]CentOS安装pre-built Nginx

官方文档:https://nginx.org/en/linux_packages.html


Nginx安装分为软件包安装和pre-built安装。这里使用的pre-built安装,不用自己编译。

设置yum repository,使linux包能自动更新
1. 创建文件/etc/yum.repos.d/nginx.repo, 粘贴以下内容

[ngnix]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

将‘OS’替换为centos, 将OSRELEASE替换为6或7(取决于系统版本)


2. yum install nginx
官方文档会提到signature key的问题,这应该属于确认软件来源正规,没有被hack。此处不管。


3. 查看安装路径
whereis nginx

nginx的配置文件为/etc/nginx/nginx.conf


官方的配置文档看的不是很懂。关于Nginx的配置后面看情况再补。


install nginx后,nginx已经在后台运行,并以/etc/conf.d/default.conf为配置启动。
因此当执行ngnix命令,想要自行启动nginx服务时,系统报错 still could not bind()。这是因为80端口已经被nginx占用了。

通过netstat -ntpl 可以查看是否有服务占用80端口。
如果修改了nginx.conf文件,要使其生效,需要重载nginx服务。命令为nginx -s reload。
假设我在nginx.conf 文件中http模块下新增server模块,端口为8080.
重启nginx后,通过netstat -ntpl | grep 80发现80端口和8080端口同时被监听,也就是default.conf和nginx.conf文件同时生效。
看了一下nginx.conf,文件尾部有 include /etc/nginx/conf.d/*.conf的一行命令,也就是配置也包含了default.conf文件。

将这行命令注释掉,nginx -s reload。再查看netstat,发现80端口没有在监听,只有8080端口生效。
也就是,默认的配置文件还是nginx.conf。只是在用户没有配置的情况下,nginx会以default.conf文件为配置文件启动服务。

官方文档完全没有提到default.conf的存在,这点比较坑。

 

nginx服务成功启动后,通过浏览器访问对应ip+端口,应该会返回nginx的欢迎界面。
如果是在虚拟机中安装的web服务,想要通过主机访问,请参考这里:[linux]主机访问虚拟机web服务(CentOS)

posted @ 2018-08-23 11:11  oDoraemon  阅读(590)  评论(0编辑  收藏  举报