Nginx简介
Nginx是什么?
Nginx是一款轻量级Web服务器,也是一款反向代理服务器
官网:http://nginx.org/
中文文档: http://www.nginx.cn/doc/
官网下载:http://nginx.org/en/download.html
Nginx能干什么?
Nginx能干的事情很多,这里简要罗列一-些:
- 可直接支持Rails和PHP的程序
- 可作为HTTP反向代理服务器
- 作为负载均衡服务器
- 作为邮件代理服务器
- 帮助实现前端动静分离
Nginx特点
Nginx安装
1.安装依赖包
提醒:
1、这里的安装服务器是Alibaba Cloud Linux 3.2104 64位(兼容CentOS 8)
2、CentOS 8建议搭配 nginx-1.18.0.tar.gz
//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2.下载并解压安装包
1. //创建一个文件夹
// 默认安装到/usr/local/nginx,所以下载到这个文件夹不会很乱。
cd /usr/local
mkdir nginx
cd nginx
2. //下载tar包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
3. tar -xvf nginx-1.18.0.tar.gz
3.安装nginx
//进入nginx目录
cd /usr/local/nginx
//进入目录
cd nginx-1.18.0
//执行命令
./configure
or
./configure --prefix=/etc/nginx --sbin-path=/usr/bin/nginx
//这里--prefix 是安装位置
//执行make命令
make
//执行make install命令
make install
./configure参数
--prefix=PATH:指定 nginx 的安装目录
--conf-path=PATH:指定 nginx.conf 配置文件路径
--user=NAME:nginx 工作进程的用户
--with-pcre:开启 PCRE 正则表达式的支持
--with-http_ssl_module:启动 SSL 的支持
--with-http_stub_status_module:用于监控 Nginx 的状态
--with-http-realip_module:允许改变客户端请求头中客户端 IP 地址
--with-file-aio:启用 File AIO
--add-module=PATH:添加第三方外部模块
如果报错‘struct crypt_data’没有名为‘current_salt’的成员”
这个是版本问题,我的服务器是Alibaba Cloud Linux 3.2104 64位(兼容CentOS 8),初次安装时找的百度靠前的文章,他的版本是Nginx-1.13.7,与CentOS 8不兼容。我们直接安装Nginx-1.18.0就不会报错了
4.配置nginx.conf(非必要)
# 打开配置文件
vi /usr/local/nginx/conf/nginx.conf
(将端口号改成8089,因为可能apache占用80端口,apache端口尽量不要修改,我们选择修改nginx端口。)
(如果不安装apache这里可以选择不修改)
5.启动nginx(非必要)
/usr/local/nginx/sbin/nginx -v # 查看版本
/usr/local/nginx/sbin/nginx # 启动nginx
/usr/local/nginx/sbin/nginx -s reload # 重启nginx
如果出现报错:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed
则运行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
再次启动即可!
#查看nginx进程是否启动
ps -ef | grep nginx
6.访问nginx界面(非必要)
若想使用外部主机连接上虚拟机访问端口,需要关闭虚拟机的防火墙:
centOS6及以前版本使用命令: systemctl stop iptables.service
centOS7关闭防火墙命令: systemctl stop firewalld.service
随后访问该ip即可看到nginx界面。
7.访问服务器ip查看(非必要)
浏览器输入:http://你的服务器IP
8.其他命令
安装完成一般常用命令
进入安装目录中,
cd /usr/local/nginx/sbin
启动,关闭,重启,命令:
./nginx 启动
./nginx -s stop 关闭
./nginx -s reload 重启
9 Nginx全局命令设置
刚安装好的Nginx, 命令需要去sbin目录执行,比较麻烦,设置下全局命令,就无需进入nginx的sbin目录执行nginx命令了
9.1 创建文件
vim /etc/init.d/nginx
把下面代码复制粘贴进去
#!/bin/sh
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
9.2、更改文件权限
chmod 755 /etc/init.d/nginx
9.3、添加环境变量
将安装的目录下的 ./nginx/sbin 添加到 /etc/profile 文件中
vim /etc/profile
在文件最后加上
PATH=$PATH:/usr/local/nginx/sbin
export PATHi
执行:
source /etc/profile
让配置文件重新生效一下即可
9.4 全局执行nginx命令
nginx 启动
nginx -v 查看版本
nginx -s stop 关闭
nginx -s reload 重启
参考文章:
https://www.cnblogs.com/zhuxr/p/13723776.html
https://www.cnblogs.com/chinaWu/p/14035181.html
https://www.cnblogs.com/testlearn/p/14151186.html