美文网首页
CentOS安装nginx

CentOS安装nginx

作者: 修行的修行 | 来源:发表于2021-11-15 20:16 被阅读0次

一、安装插件

1、安装gcc

首先查看是否已经安装过gcc了

gcc -v

如果已经安装过了,则会有如下类似输出

[root@localhost ~]$ gcc -v 
Using built-in specs. 
COLLECT_GCC=gcc 
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper 
Target: x86_64-redhat-linux 
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux 
Thread model: posix 
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 

如果没有,则用如下命令安装

yum -y install gcc

2、pcre、pcre-devel安装

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

yum install -y pcre pcre-devel

3、zlib安装

zlib库提供了很多种压缩和解压缩方式,nginx使用zlib对http包的内容进行gzip,所以需要安装

yum install -y zlib zlib-devel

4、安装openssl

安装了openssl,才能使用https

yum install -y openssl openssl-devel

二、安装Nginx

1、下载Nginx安装包

wget http://nginx.org/download/nginx-1.14.1.tar.gz

下载完之后解压

tar -xf nginx-1.14.1.tar.gz

2、安装Nginx

解压之后,执行以下命令

cd nginx-1.14.1

./configure --with-http_stub_status_module --with-http_ssl_module

make

make install

有以下输出,说明安装成功

[root@localhost nginx-1.14.1]$ make install 
make -f objs/Makefile install 
make[1]: Entering directory `/home/django/download/nginx-1.14.1' 
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx' 
mkdir: cannot create directory ‘/usr/local/nginx’: Permission denied 
make[1]: *** [install] Error 1 
make[1]: Leaving directory `/home/django/download/nginx-1.14.1' 
make: *** [install] Error 2 
[django@localhost nginx-1.14.1]$ sudo make install 
[sudo] password for django:  
make -f objs/Makefile install 
make[1]: Entering directory `/home/django/download/nginx-1.14.1' 
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx' 
test -d '/usr/local/nginx/sbin' \ 
        || mkdir -p '/usr/local/nginx/sbin' 
test ! -f '/usr/local/nginx/sbin/nginx' \ 
        || mv '/usr/local/nginx/sbin/nginx' \ 
                '/usr/local/nginx/sbin/nginx.old' 
cp objs/nginx '/usr/local/nginx/sbin/nginx' 
test -d '/usr/local/nginx/conf' \ 
        || mkdir -p '/usr/local/nginx/conf' 
cp conf/koi-win '/usr/local/nginx/conf' 
cp conf/koi-utf '/usr/local/nginx/conf' 
cp conf/win-utf '/usr/local/nginx/conf' 
test -f '/usr/local/nginx/conf/mime.types' \ 
        || cp conf/mime.types '/usr/local/nginx/conf' 
cp conf/mime.types '/usr/local/nginx/conf/mime.types.default' 
test -f '/usr/local/nginx/conf/fastcgi_params' \ 
        || cp conf/fastcgi_params '/usr/local/nginx/conf' 
cp conf/fastcgi_params \ 
        '/usr/local/nginx/conf/fastcgi_params.default' 
test -f '/usr/local/nginx/conf/fastcgi.conf' \ 
        || cp conf/fastcgi.conf '/usr/local/nginx/conf' 
cp conf/fastcgi.conf '/usr/local/nginx/conf/fastcgi.conf.default' 
test -f '/usr/local/nginx/conf/uwsgi_params' \ 
        || cp conf/uwsgi_params '/usr/local/nginx/conf' 
cp conf/uwsgi_params \ 
        '/usr/local/nginx/conf/uwsgi_params.default' 
test -f '/usr/local/nginx/conf/scgi_params' \ 
        || cp conf/scgi_params '/usr/local/nginx/conf' 
cp conf/scgi_params \ 
        '/usr/local/nginx/conf/scgi_params.default' 
test -f '/usr/local/nginx/conf/nginx.conf' \ 
        || cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf' 
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default' 
test -d '/usr/local/nginx/logs' \ 
        || mkdir -p '/usr/local/nginx/logs' 
test -d '/usr/local/nginx/logs' \ 
        || mkdir -p '/usr/local/nginx/logs' 
test -d '/usr/local/nginx/html' \ 
        || cp -R html '/usr/local/nginx' 
test -d '/usr/local/nginx/logs' \ 
        || mkdir -p '/usr/local/nginx/logs' 
make[1]: Leaving directory `/home/django/download/nginx-1.14.1'

3、配置Nginx

首先切换到/usr/local/nginx

[root@localhost nginx]$ pwd 
/usr/local/nginx 
[root@localhost nginx]$ ll 
total 0 
drwxr-xr-x 2 root root 333 May 12 17:18 conf 
drwxr-xr-x 2 root root  40 May 12 17:18 html 
drwxr-xr-x 2 root root   6 May 12 17:18 logs 
drwxr-xr-x 2 root root  19 May 12 17:18 sbin 
[django@localhost nginx]$ 

加载到conf下

[root@localhost nginx]$ cd conf/ 
[root@localhost conf]$ ll 
total 68 
-rw-r--r-- 1 root root 1077 May 12 17:18 fastcgi.conf 
-rw-r--r-- 1 root root 1077 May 12 17:18 fastcgi.conf.default 
-rw-r--r-- 1 root root 1007 May 12 17:18 fastcgi_params 
-rw-r--r-- 1 root root 1007 May 12 17:18 fastcgi_params.default 
-rw-r--r-- 1 root root 2837 May 12 17:18 koi-utf 
-rw-r--r-- 1 root root 2223 May 12 17:18 koi-win 
-rw-r--r-- 1 root root 5170 May 12 17:18 mime.types 
-rw-r--r-- 1 root root 5170 May 12 17:18 mime.types.default 
-rw-r--r-- 1 root root 2656 May 12 17:18 nginx.conf 
-rw-r--r-- 1 root root 2656 May 12 17:18 nginx.conf.default 
-rw-r--r-- 1 root root  636 May 12 17:18 scgi_params 
-rw-r--r-- 1 root root  636 May 12 17:18 scgi_params.default 
-rw-r--r-- 1 root root  664 May 12 17:18 uwsgi_params 
-rw-r--r-- 1 root root  664 May 12 17:18 uwsgi_params.default 
-rw-r--r-- 1 root root 3610 May 12 17:18 win-utf

配置nginx的配置文件nginx.conf

image

首先修改用户,其次修改默认的服务端口,或者删除默认服务

image

在http{}的最后添加include /usr/local/nginx/conf/conf.d/*.conf; 这个的意思是会从include /usr/local/nginx/conf/conf.d中读取所有.conf的配置文件

完整配置文件如下:

user  root; 
worker_processes  1; 

#error_log  logs/error.log; 
#error_log  logs/error.log  notice; 
#error_log  logs/error.log  info; 

#pid        logs/nginx.pid; 

events { 
    worker_connections  1024; 
} 

http { 
    include       mime.types; 
    default_type  application/octet-stream; 

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' 
    #                  '$status $body_bytes_sent "$http_referer" ' 
    #                  '"$http_user_agent" "$http_x_forwarded_for"'; 

    #access_log  logs/access.log  main; 

    sendfile        on; 
    #tcp_nopush     on; 

    #keepalive_timeout  0; 
    keepalive_timeout  65; 

    #gzip  on; 
    include /usr/local/nginx/conf/conf.d/*.conf; 
}

4、启动Nginx

切换目录到/usr/local/nginx/sbin下面,用下面这条命令启动nginx

./nginx

5、查看Nginx是否启动成功

[root@localhost sbin]# ps -ef | grep nginx 
root     25241     1  0 17:50 ?        00:00:00 nginx: master process ./nginx 
root     25242 25241  0 17:50 ?        00:00:00 nginx: worker process 
root     25244 25209  0 17:50 pts/0    00:00:00 grep --color=auto nginx

6、编写自己的配置

切换目录到/usr/local/nginx/conf下,新建conf.d并加载到conf.d下面

[root@localhost ~]# cd /usr/local/nginx/conf 
[root@localhost conf]# mkdir conf.d 
[root@localhost conf]# cd conf.d/ 
[root@localhost conf.d]# 

在conf.d中编写.conf文件,即我们自己的配置

server { 
    listen 8080; 
    server_name 172.18.3.171; 
    charset utf-8; 

    location / { 
        root /home/project/ruicheng_project/dist; 
        try_files $uri $uri/ /index.html last; 
        index index.html; 
    } 

    location /api/ { 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

        proxy_pass http://127.0.0.1:8000/; 
    } 
}

编写完后,重启nginx即可

三、将Nginx添加到service

按照以上步骤安装nginx完毕之后,每次启动nginx都得加载到/usr/local/nginx/sbin中启动./nginx,这样非常麻烦,可以进行以下步骤将nginx添加到service中,就可以用service nginx start来启动nginx

1、在/etc/init.d/路径下添加脚本文件,名称为nginx

image

2、将如下代码写进nginx脚本文件

#!/bin/bash 
#Startup script for the nginx Web Server 
#chkconfig: 2345 85 15 
nginx=/usr/local/nginx/sbin/nginx 
conf=/usr/local/nginx/conf/nginx.conf 
case $1 in 
start) 
echo -n "Starting Nginx" 
$nginx -c $conf 
echo " done." 
;; 
stop) 
echo -n "Stopping Nginx" 
killall -9 nginx 
echo " done." 
;; 
test) 
$nginx -t -c $conf 
echo "Success." 
;; 
reload) 
echo -n "Reloading Nginx" 
ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP 
echo " done." 
;; 
restart) 
$nginx -s reload 
echo "reload done." 
;; 
*) 
echo "Usage: $0 {start|restart|reload|stop|test|show}" 
;; 
esac

3、为nginx添加文件可执行权限

[root@localhost init.d]# chmod +x nginx

4、service启动nginx

# 启动
[root@localhost init.d]# service nginx start 
Starting Nginx done.
# 重启
[root@localhost init.d]# service nginx restart 
reload done.

相关文章

网友评论

      本文标题:CentOS安装nginx

      本文链接:https://www.haomeiwen.com/subject/mmoqtrtx.html