社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

手把手教你在 CentOS7 上搭建 Nginx

Java极客技术 • 4 年前 • 895 次点击  
每天早上七点三十,准时推送干货

Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件( IMAP/POP3 )代理服务器。

这里还可以再展开,比如什么是反向代理呀,那有反向代理,是不是还有正向代理?阿粉在这里就不多做解释了哈,相信好奇的读者们肯定会自己去百度/谷歌的~

接下来阿粉将文章重点放在,如何亲手搭建 Nginx

安装前所需环境

Nginx安装之前,需要环境:wget、gcc、pcre、openssl、zlib

1,wget ,用于从外网上下载插件:

yum -y install wget 

2,gcc:GCC(GNU Compiler Collection,GNU 编译器套件),是由 GNU 开发的编程语言编译器。GCC 原本作为 GNU 操作系统的官方编译器,现已被大多数类 Unix 操作系统(如 Linux、BSD、Mac OS X 等)采纳为标准的编译器

yum install gcc-c++

3,pcre:PCRE(Perl Compatible Regular Expressions)安装 ,它是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库

yum install -y pcre pcre-devel

4,openssl:它是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用; nginx 不仅支持 http 协议,还支持 https (即在 ssl 协议上传输 http ),所以需要在 linux 安装 openssl 库

yum install -y openssl openssl-devel

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

yum install -y zlib zlib-devel

Nginx 安装

太不容易了,经过上面的步骤,咱们终于将所需要的环境安装好了,然后 Nginx 安装走起

1 ,进入一个目录(随便一个目录就可以,用来存放下载的 Nginx 安装包,在这里以进入 /root 目录为例,如果你用的 root 账号登陆的,登陆进来默认就是 /root ,这也是为啥阿粉用这个目录,比较懒嘛...)

进入目录命令: cd /root

下载 nginx 安装包,本文用例 nginx1.10.3(最新版本可通过官网 http://nginx.org/download 可查看)

下载命令:wget http://nginx.org/download/nginx-1.10.3.tar.gz

2,解压 Nginx 的 tar 包

解压命令:tar -zxvf nginx-1.10.3.tar.gz

3,查看是否解压成功

命令: ls 

如图,可以看到解压成功

4,进入刚解压的的目录

命令: cd nginx-1.10.3 

进行配置(在此将 Nginx 安装指向 /usr/local/src/nginx/ 目录下)

命令: ./configure --prefix=/usr/local/src/nginx/ 

发现会有好多行信息出来,不要怕,是正常的信息

5,进行编译和安装

命令: make && make install 

6,整个验证、编译、安装过程应该不会报什么错误,如果在上一过程中使用prefix设置了安装目标目录,那么还需要在 /etc/profile 文件中设置环境变量(备注:环境变量一般指操作系统中用来指定操作系统运行环境的一些参数,相当于设置了一个启动软件(如 mysql/jdk )等快速路径,使用的时候很方便)

命令: vi /etc/profile

在配置文件中加入:

export NGINX_HOME=/usr/local/src/nginx
export PATH=$NGINX_HOME/sbin:$PATH

因为阿粉乱倒腾的东西挺多的,所以这里的配置文件不需要一定要和阿粉的一样

7,使环境变量生效

命令:source /etc/profile

8,检查是否安装成功:

进入到 etc 目录(cd /etc)中执行命令: nginx –t ,若不正确则会给出相应的错误提示 

我这里给出的是正确的提示,说明咱们安装对了

9,对Nginx配置文件进行配置,Nginx配置文件的位置: /usr/local/src/nginx/conf/nginx.conf (具体位置要看你自己的):

vi /usr/local/src/nginx/conf/nginx.conf

10,将配置文件修改为配置文件在 Nginx 安装目录下的 conf 中的 nginx.conf ,命令:

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

11,启动nginx, 命令:

nginx

12,测试,启动 Nginx 的情况下在外部用浏览器访问刚才在配置文件中配置的地址 ,如图所示,即为成功

可能出现的问题:

在外部使用浏览器时,访问地址有可能访问不到。

问题原因:没有开放80端口,或者防火墙未关闭

基于安全考虑,建议选择开放80端口

1,开放80端口(请注意,要确保此时的防火墙是打开的,否则进行此步骤是没有意义的):

开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:systemctl restart firewalld.service
 
命令含义:
 
--zone #作用域
 
--add-port=80/tcp  #添加端口,格式为:端口/通讯协议
 
--permanent   #永久生效,没有此参数重启后失效

或者直接来个干脆的,将防火墙关掉:

service firewalld stop

这两个操作,选择其中一个即可。至此,Nginx安装教程结束。

设置 Nginx 开机自启

在实践过程中,发现如果将机器关闭之后,再次打开,需要再次手动开启,才能访问到 Nginx ,对于追求高效率的我们来说,这一点肯定是无法忍受的,所以接下来讲一讲如何设置 Nginx 开机自启:

1,进入到 /lib/systemd/system/ 目录下,命令:

cd /lib/systemd/system/

2,创建文件,命令:

vi nginx.service

将下面内容,复制到该文件中即可:

[Unit]
Description=nginx 
After=network.target 

[Service] 
Type=forking 
ExecStart=/usr/local/src/nginx/sbin/nginx
ExecReload=/usr/local/src/nginx/sbin/nginx reload
ExecStop=/usr/local/src/nginx/sbin/nginx quit
PrivateTmp=true 

[Install] 
WantedBy=multi-user.target

Description: 描述服务 After: 描述服务类别

[Service]服务运行参数的设置 Type=forking 是后台运行的形式 ExecStart 为服务的具体运行命令 ExecReload 为重启命令 ExecStop 为停止命令 PrivateTmp=True 表示给服务分配独立的临时空间 注意一点:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为 3

3,保存退出该文件之后,执行该文件,使 Nginx 开机自启生效,执行命令:

systemctl enable nginx.service

4,重启一下虚拟机,看看有没有设置成功~

阿粉在这里为了表示上面可以设置开机自启成功,在虚拟机刚启动之后就查看了一下 nginx 的状态,可以看到是 running

看到这里,关于搭建 Nginx 上的那些坑就再也难不住你了

你可能会问,阿粉,我一个做 Java 开发的,为什么要懂 Nginx 怎么搭建呢?

因为阿粉是个好奇的宝宝呀,哈哈哈


< END >

如果大家喜欢我们的文章,欢迎大家转发,点击在看让更多的人看到。也欢迎大家热爱技术和学习的朋友加入的我们的知识星球当中,我们共同成长,进步。




往期精彩回顾




Java容器集合经典面试题集,你一定不要错过
学会这些超实用的谷歌浏览器技巧,妹子随便撩
阿里大神写的Java并发编程教程,真的干货满满!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/71565
 
895 次点击