本文是写给那些刚刚接触linux的新手写的,#符号后面的都是命令可以复制进去,你有发展linux的打算也可以手打加深对命令的了解。
第一步:# yum -y installgcc-c++(C编译器下面的安装包需要)
Linux系统下Nginx的源码编译安装模块依赖性,需要依赖下面3个安装包(下面的演示版本不是最新版本,你也可以下载最新的版本,只要把版本号修改一下即可):
1:ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/source)
# wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
2:gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/)
# wget http://zlib.net/zlib-1.2.11.tar.gz
3:rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
# wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
这个 是本文的核心,不下载能行?
Nginx包(下载: http://nginx.org/en/download.html)
# wget http://nginx.org/download/nginx-1.8.0.tar.gz
第二步:下载完后按顺序依次安装openssl-fips-2.0.10.tar.gz,zlib-1.2.11.tar.gz, pcre-8.37.tar.gz,nginx-1.8.0.tar.gz
#su -(可以返回localhost)
1.安装openssl-fips-2.0.10.tar.gz
[root@localhost]# tar -zxvfopenssl-fips-2.0.10.tar.gz
[root@localhost]# cdopenssl-fips-2.0.10
[root@localhostopenssl-fips-2.0.10]# ./config
[root@localhostopenssl-fips-2.0.10]# make
[root@localhostopenssl-fips-2.0.10]# make install
2.安装zlib-1.2.11.tar.gz(返回localhost)
[root@localhost]# tar -zxvfzlib-1.2.11.tar.gz
[root@localhost]# cdzlib-1.2.11
[root@localhost zlib-1.2.11]#./configure
[root@localhost zlib-1.2.11]#make
[root@localhost zlib-1.2.11]#make install
3.安装pcre-8.37.tar.gz(返回localhost)
[root@localhost]# tar -zxvfpcre-8.37.tar.gz
[root@localhost]# cdpcre-8.37
[root@localhost pcre-8.37]#./configure
[root@localhost pcre-8.37]#make
[root@localhost pcre-8.37]# makeinstall
4、安装nginx-1.8.0.tar.gz(返回localhost)
[root@localhost]# tar -zxvfnginx-1.8.0.tar.gz
[root@localhost]# cdnginx-1.8.0
[root@localhost nginx-1.8.0]#./configure --with-openssl=../openssl-fips-2.0.10--with-zlib=../zlib-1.2.11 --with-pcre=../pcre-8.37
(注释:../pcre-8.37=/usr/local/pcre-8.37指的是pcre-8.37的源码路径。)
[root@localhost nginx-1.8.0]#make
[root@localhost nginx-1.8.0]#make install
第三步:检测是否安装成功并启动
检查配置文件 # /usr/local/nginx/sbin/nginx-t
启动nginx # /usr/local/nginx/sbin/nginx
端口查看 # ps -ef|grep nginx
NGINX启动时提示错误:
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx: error while loading shared libraries:libpcre.so.1: cannot open shared object file: No such file ordirectory
输入下列命令,会出现以下提示:
# ldd $(which /usr/local/nginx/sbin/nginx)
linux-vdso.so.1 => (0x00007fff48ff0000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0×0000003065800000)
libpcre.so.1 => not found
libssl.so.6 => /lib64/libssl.so.6 (0×0000003067000000)
libcrypto.so.6 => /lib64/libcrypto.so.6(0×0000003066400000)
libdl.so.2 => /lib64/libdl.so.2 (0×0000003063000000)
libz.so.1 => /lib64/libz.so.1 (0x0000003063c00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003062c00000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2(0x0000003066c00000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3(0x0000003069c00000)
libcom_err.so.2 => /lib64/libcom_err.so.2(0×0000003068800000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3(0×0000003069000000)
/lib64/ld-linux-x86-64.so.2 (0×0000003062800000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0(0x000000306a800000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1(0x0000003067c00000)
libresolv.so.2 => /lib64/libresolv.so.2(0×0000003068400000)
libselinux.so.1 => /lib64/libselinux.so.1(0×0000003064400000)
libsepol.so.1 => /lib64/libsepol.so.1(0×0000003064000000)
解决方法:64位系统
# ln -s /usr/local/lib/libpcre.so.1/lib64
32位系统则:
# ln -s/usr/local/lib/libpcre.so.1 /lib
第四步:关闭防火墙
关闭:#chkconfig iptables off 或者#/sbin/chkconfig--level 2345 iptables off
重启系统后生效
重启:# reboot(重启后需要启动nginx,命令在上面)
第五步:检测是否成功运行
打开浏览器访问此机器的 IP,如果浏览器出现 Welcometonginx! 则表示 Nginx 已经安装并运行成功。
第六步:修改nginx.conf配置文件(简单的反向代理配置)
# vi /usr/local/nginx/conf/nginx.conf
在文本编辑中按 I键可以进入编辑模式,Esc键可以退出编辑模式(只是退出编辑模式不是退出vi模式。 :wq 可以在退出编辑模式输入这个命令保存退出vi模式。
nginx.conf文件中找出下列这段代码
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
更改成下列文本。 注:www.xxx.com是代表你的域名
server {
listen 80;
server_name www.xxx.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://www.xxx.com;
}
如果出现乱码文本中 #charset koi8-r 改成 charset utf-8 (把#符号去掉,文本中#代表着注释)
第七步:
http选项下
gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types application/javascript text/javascript text/plain application/x-javascript text/css application/xml;
gzip_vary on;
注意:gzip_types必须加上application/javascript 否则js不会被压缩
第八步:重启服务
# /usr/local/nginx/sbin/nginx -s reload 或 # /etc/init.d/nginx reload
重启之后看看是否设置成功
以下代码是在前人的基础上,结合自己服务器实际情况修改的,本人服务器环境是:CentOS 6.3
1、创建启动脚本,
root用户执行 vi /etc/init.d/nginx ,保存如下脚本
Python代码 收藏代码
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse
# proxy and IMAP/POP3 proxy server
# processname: nginx
# chkconfig: 2345 90 91
# description: nginx web server
# processname: nginx
# config: /opt/nginx/conf/nginx.conf
# pidfile: /opt/nginx/nginx.pid
# Source function library.
. /etc/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
if [ -f /etc/sysconfig/nginx ];then
. /etc/sysconfig/nginx
fi
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/opt/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
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
killall -9 nginx
}
restart() {
configtest || return $?
stop
sleep 1
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)
$1
;;
test)
configtest
;;
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|test}"
exit 2
esac
2、为nginx脚本添加权限
chmod a+x /etc/init.d/nginx
3、添加nginx服务
chkconfig --add nginx
chkconfig nginx on
4、测试
service nginx start
service nginx stop
service nginx reload
启动操作
nginx -c /usr/local/nginx/conf/nginx.conf
-c参数指定了要加载的nginx配置文件路径
停止操作
停止操作是通过向nginx进程发送信号来进行的
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
复制代码
从容停止Nginx:
kill -QUIT 主进程号
例如:kill -QUIT 16391
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
kill -9 主进程号
复制代码
另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型'/usr/local/nginx/logs/nginx.pid'
平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径
或者使用
/usr/nginx/sbin/nginx -s reload
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
/usr/nginx/sbin/nginx -t
分享到:
相关推荐
内容概要:通过nginx配置实现控制不同的用户可以访问不同的资源或者web 适合人群:具备一定编程基础,工作1-3年的研发人员 能学到什么:①nginx的配置项;②Basic Auth相关知识。 阅读建议:改资源基于Linux-CentOS7...
"的问题,并确保系统使用的是适合CentOS的Nginx配置。记住,正确配置和维护服务器上的软件是保持系统安全和高效运行的关键。对于任何疑问或遇到其他问题,可以查阅相关文档或向社区寻求帮助。同时,定期更新和备份你...
- 提供关于`/alidata`目录下的软件配置及常用命令的详细介绍。 #### 五、关键技术细节 - **Nginx**: - 版本: 1.4.4 - 作为高性能的Web服务器和反向代理服务器,在处理静态内容方面表现出色。 - **Apache**: - ...
版权声明:本文为CSDN博主「www_5438xiazai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/www_5438xiazai/article/details/119329082
描述中提到“多种环境下的实现方式”,这可能意味着文件内涵盖了在各种操作系统(如Windows、Linux、Android或iOS)、不同的开发平台(例如Web、移动端或服务器端)或使用多种编程语言(如Java、Python、C++或...