Press "Enter" to skip to content

Centos 7 源码编译安装 Nginx 1.13

关于nginx的相关介绍我就不说了,既然你选择nginx作为你的web服务器,想必你多少也对nginx server有不同认知和理解,接下来我就直接安装。

1.先决条件:

我使用的是centos7.3 64位核心版系统,安装配置nginx前必须安装nginx依赖包,请查看;Centos 7编译安装php7.1之生产篇,并安装前文开头所提供的依赖包。此依赖组件包适用于Nginx任意版本。

新建web用户和组

$ /usr/sbin/groupadd www
$ /usr/sbin/useradd -g www www
$ ulimit -SHn 65535 //设置linux高负载参数

2.从官方下载Nginx以及OpenSSL

下载Nginx时有两个版本:开发版和稳定版,如果用于生产就下载稳定版本,http://nginx.org/en/download.html (最好下载最新版本的稳定版,这样会有bug修复以及新特性)我下载的是就是目前最新版本nginx-1.13.5。

$ cd /tmp
$ wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
$ tar zxvf openssl-1.1.0e.tar.gz
$ wget https://nginx.org/download/nginx-1.13.5.tar.gz
$ tar zxvf nginx-1.13.5.tar.gz
$ cd nginx-1.13.5

3.安装Nginx

你可能会注意到有些文档教程安装nginx的时候,并未指派这么多模块,(看起来好长),有的连模块和用户都没有指派,其实模块是根据自己的需要指派的, 如果想以后不麻烦,那么就按照下面的模块指派就行了,其实这也算是全能的了,不然后期你需要什么还得重新编译进去,不是很麻烦,但也不省事。至于是否指派用户组,我坚决会让你指派,这可关乎nginx配置的可用性和安全稳定。

$ ./configure \
--prefix=/usr/local/nginx \
--user=www \
--group=www \
--with-pcre \
--with-openssl=/tmp/openssl-1.1.0e \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-http_image_filter_module \
--with-http_slice_module \
--with-mail \
--with-threads \
--with-file-aio \
--with-stream \
--with-mail_ssl_module \
--with-stream_ssl_module \
$ make -j8 && make install //编译并安装

4.创建 systemctl 系统 Nginx 单元文件

安装完成后还需要开机自启动,不然每次开机都需要手动,那岂不是太麻烦。

$ vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP /usr/local/nginx/logs/nginx.pid
ExecStop=/bin/kill -s QUIT /usr/local/nginx/logs/nginx.pid
PrivateTmp=true

[Install]
WantedBy=multi-user.target

保存并退出。

5.加入开机自启动并启动Nginx

$ systemctl enable nginx.service
$ systemctl restart nginx.service

6.设置Firewalld防火墙

$ firewall-cmd --zone=public --add-port=80/tcp --permanent
$ firewall-cmd --reload

7.查看Nginx是否启动成功

$ ss -ntlp

可以查看到nginx进程已经运行了。到此nginx安装就完成了,可能你还会有疑问,nginx怎么解析并支持php程序呢,别慌,下一篇文章中我会写到。

版权声明:本站原创文章,欢迎任何形式的转载。
转载请注明:Centos 7 源码编译安装 Nginx 1.13 | 任我乐

14 Comments

  1. salmonl salmonl 2018年8月8日

    参考了你的文章,http://niliu.me/articles/328.html#more-328,可以加个友链不

    • Node Cloud Node Cloud 2019年1月13日

      可以哈

  2. zhang haidi zhang haidi 2018年6月14日

    我是按照您的教程装的,php配置。但是Nginx还是无法打开PHP文件

    • zhang haidi zhang haidi 2018年6月14日

      An error occurred.
      Sorry, the page you are looking for is currently unavailable.
      Please try again later.

      If you are the system administrator of this resource then you should check the error log for details.

      Faithfully yours, nginx.

  3. 糗糗 糗糗 2018年2月11日

    nginx怎么解析并支持php程序呢,这篇文章没写

    • Node Cloud Node Cloud 2018年2月11日

      将Nginx配置文件中的以下内容取消注释即可,$document_root可以修改成你的网站根目录即可:

      location ~ \.php$ {
      root /apps/web/renwolecom;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      • 曾曾 曾曾 2018年5月16日

        楼主你前面配置www.conf 时
        将listen = 127.0.0.1:9000修改成了listen = /var/run/www/php-cgi.sock
        nginx还能支持php吗?
        location ~ \.php$ {
        root /apps/web/renwolecom;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        • Node Cloud Node Cloud 2018年5月20日

          需要将listen = 127.0.0.1:9000注释掉

  4. Ep_Man Ep_Man 2018年1月19日

    为什么用yum安装了openssl和openssl-devel还需要下载openssl源码?

    • Node Cloud Node Cloud 2018年1月19日

      有时某些软件依赖需要openssl高版本的,而Centos7自带的openssl版本略旧。

  5. S.L. S.L. 2017年9月20日

    很喜欢您写的文章,很崇拜您,希望能跟着您的脚步,越走越远

    • Node Cloud Node Cloud 2017年9月21日

      大家一起学习进步,互相帮助哈

  6. cdn cdn 2017年5月22日

    这个非常好,我是ubuntu系统,用这个也可以安装成功!

发表评论

电子邮件地址不会被公开。 必填项已用*标注