0810Nginx安装

12.6 Nginx安装

下载安装包(再官网下载stable最新稳定版):

cd /usr/local/src

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

tar zxf nginx-1.12.1.tar.gz

配置安装环境:

cd nginx-1.12.1/

./configure --prefix=/usr/local/nginx(可以添加模块,按需求进行配置,https等后加)

编译and安装:

make &&  make install

echo $? (确定安装是否出错)

创建启动脚本:

vim /etc/init.d/nginx

复制网站中的配置内容,开始配置后每次完成-t进行语法检查

(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx )

/usr/local/nginx/sbin/nginx -t

chmod 755 /etc/init.d/nginx (更改文件权限)

chkconfig --add nginx (先加入系统服务再设置开机启动)

chkconfig nginx on

开始配置文件:

cd /usr/local/nginx/conf/

mv nginx.conf nginx.conf.bak (这里mv用法为注释掉本身的配置信息,创建自己的脚本)

vim /usr/local/nginx/conf/nginx.conf

复制网站中的配置内容,每次完成-t进行语法检查

sercer就跟httpd的虚拟主机配置相同,一个server就是一个虚拟主机

location php 为配置解析php

(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf)

/usr/local/nginx/sbin/nginx -t

到这里安装成功,开始启动nginx:

/etc/init.d/nginx  start

curl localhost检测

ps aux | grep nginx

netstat -lntp 查看开启的服务

在浏览器测试前,先确定hosts添加了,这一块都混淆了上次实验两个别名出现的问题下次咨询

测试php的解析:

vim /usr/local/nginx/html/666.php

<?php

echo "这里随便写,复制个故事如何";

curl localhost/666.php显示上面的语句表示成功

参考的阿呆同学的502问题

对于LNMP来说,最常见的就是502问题,LNMP环境搭建完成后,一访问网站直接提示“502 Bad Gateway”。主要原因大致分为两种:

(1)配置错误

在Nginx配置中location的php配置中

如果把fastcgi_pass(这是用来通信的)后面指定的路径配置错了,那么就会出现502错误,因为Nginx找不到php-fpm了,fastcgi _pass后面可以跟socket也可以跟IP:port,默认监听地址为:127.0.0.1:9000。

注意: 这里用两种形式都可以,但是两个配置文件(Nginx和php-fpm)中的形式一定要统一,不然绝对502;如果用套接字形式的话,socket文件的路径一定要对,不然也还是502。

(2)资源耗尽

LNMP架构处理PHP时,是Nginx直接调取后端的php-fpm服务,如果Nginx的请求量偏高,而我们又没给php-fpm配置足够的子进程数,那么总有php-fpm资源耗尽的时候,一旦耗尽Nginx找不到php-fpm,此时也会导致502错误出现。解决办法就是调整php-fpm.conf中的pm.max_children数值,使其增加。但也不能无限制增加,因为服务器的资源有限。4G内存机器如果只跑php-fpm和Nginx,不跑MySQL服务,pm.max _children可以设置为150,尽量不要超过该数值,8G内存设置为300,以此类推。

如果遇到其它的较为少见的错误,我们可以修改nginx的错误日志(/usr/local/nginx/logs/nginx_error.log)的级别,在配置文件/usr/local/nginx/conf/nginx.conf中将crit改为debug,使其记录最多的日志内容,这样方便我们排查错误,但是配置更改完成后要记得将级别改回crit,避免日志文件占用太多磁盘空间。

12.7默认虚拟主机

添加虚拟主机目录:

cd /usr/local/nginx/conf

vim /usr/local/nginx/conf/nginx.conf

include vhost/*.conf (在最后面增加这条,删除下面server的信息,为创建一个虚拟主机配置文件的一个子目录,和httpd加一条一样)

创建上面配置文件的目录文件:

mkdir /usr/local/nginx/conf/vhost

然后增加一台虚拟主机:

cd  /usr/local/nginx/conf/vhost/ 进入这个目录文件(虚拟主机目录)

vim aaa.com.conf 给虚拟机编辑如下内容:

这个就是虚拟主机的目录就是:vim /usr/local/nginx/conf/vhost/aaa.com.conf

server

{

listen 80 default_server;   (有default_serve就是默认虚拟主机)

server_name aaa.com;     (定义网站名字)

index index.html index.htm index.php;

root /data/wwwroot/default;  (定义配置文件目录,还没创建)

}

创建虚拟主机配置文件的目录:

mkdir -p /data/wwwroot/default/

cd /data/wwwroot/default/ 进入此目录

echo “This is a default site.”>/data/wwwroot/default/index.html

(vim /data/wwwroot/default/index.html创建了一个index给其中添加内容)

/usr/local/nginx/sbin/nginx -t (这里会给一些信息百度一下不用理会)

/usr/local/nginx/sbin/nginx -s reload 重新加载

或者  /usr/local/nginx/sbin/nginx restart

进行检测:

curl localhost

curl -x127.0.0.1:80 123.com

(无论什么域名,只要解析指向到本服务器,都能访问到默认虚拟主机站点)

给虚拟主机配置PHP解析:

在配置文件中继续加入

server

{

listen 80 default_server;

server_name aaa.com;

index index.html index.htm index.php;

root /data/wwwroot/default;

location ~ \.php$

{

include fastcgi_params;

fastcgi_pass unix:/tmp/php-fcgi.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /data/wwwroot/default$fastcgi_script_name;

}

}

检查:

curl -x127.0.0.1:80 aaa.com/index.php

12.8 Nginx用户认证

编辑虚拟主机配置文件,换了一个test

vim /usr/local/nginx/conf/vhost/test.com.conf

server

{

listen 80;

server_name test.com;

index index.html index.htm index.php;

root /data/wwwroot/test.com;

location  /

{

auth_basic              "Auth";   #用户认证的名字

auth_basic_user_file   /usr/local/nginx/conf/htpasswd;   #用户的密码文件

}

}

上述“location”中的内容即为设定用户认证。在此是为整个站点设定的用户认证,如果只是为某个目录设置用户认证,在location所在行进行编辑就好,如:location /admin 目录。也可以对某种请求(即对一个普通文件)设定用户认证,如location ~ admin.php()使用 ~ 进行匹配

创建密码文件在此需要使用Apache的/usr/local/apache/bin/htpasswd命令,如果机器中已经有Apache,可以直接使用,如果没有,需要使用yum安装httpd命令:

yum install -y httpd

htpasswd -c /usr/local/nginx/conf/htpasswd quyifan (设置密码用到htpasswd与httpd相同)

cat /usr/local/nginx/conf/htpasswd查看密码

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload(如果配置文件有错误,实际不会生效,restart会有风险)

添加这个test虚拟主机配置文件指定的根目录(放文件的地方):

mkdir /data/wwwroot/test.com

echo “test.com”>/data/wwwroot/test.com/index.html

curl -x127.0.0.1:80 test.com -I//状态码为401说明需要验证

curl -x127.0.0.1:80 test.com  -uquyifan:passwd 访问状态码变为200

编辑windows的hosts文件,然后在浏览器中访问test.com会有输入用户、密码的弹窗

还可以针对目录的用户认证

location  /admin/(直接在这里添加需要认证的目录)

{

auth_basic              "Auth";

auth_basic_user_file   /usr/local/nginx/conf/htpasswd;

}

测试成功,针对/admin/做了用户认证

之后会多次匹配location认证,在这里匹配需求

最好设置好curl进行测试

加:给虚拟主机配置php解析:

server

{

listen 80;

server_name test.com;

index index.html index.htm index.php;

root /data/wwwroot/test.com;   (这里是站点根目录,下面的fastcgi_param要与这个一致)

location ~ \.php$        #配置PHP解析

{

include fastcgi_params;

fastcgi_pass unix:/tmp/php-fcgi.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;

}

}

12.9 Nginx域名重定向

更改vim /usr/local/nginx/conf/vhost/test.com.conf

server

{

listen 80;

server_name test.com test1.com test2.com;

index index.html index.htm index.php;

root /data/wwwroot/test.com;

if ($host != ‘test.com‘ ) {

rewrite  ^/(.*)$  http://test.com/$1  permanent;           (这里指不是rest.com的全部跳转)

}

}

server_name后面支持写多个域名,这里要和httpd的做一个对比

permanent为永久重定向,状态码为301,如果写redirect则为302

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

curl -x127.0.0.1:80 test2.com/index.html  -I  301重定向

扩展

nginx.conf 配置详解 http://www.ha97.com/5194.html http://my.oschina.net/duxuefeng/blog/34880

时间: 2025-01-12 04:20:54

0810Nginx安装的相关文章

安装Windows7系统时,提示:缺少所需的CD/DVD驱动器设备驱动程序

      测试机型:HP probook 430 g3       系统:Windows 7 Pro x64 现在笔记本电脑主板集成的USB口大多为3.0版本,而且一些厂商为了追求PC的轻薄,不再集成光驱,所以我们在安装系统时,一般只能通过U盘或U口外接光驱. 而当我们因为需要(安装OEM系统),在通过刻录软件(如UltraISO)将系统写入U盘或光盘的方式安装系统时,此时问题就可能悄悄出现了:因为Win7官方原版系统没有集成USB3.0驱动,所以可能的报错如下: 点击"浏览"或通过

Windows8.1-KB2999226-x64安装提示 此更新不适用你的计算机

如题 Windows8.1-KB2999226-x64.msu  双击安装 安装提示 此更新不适用你的计算机 . 解决方案: 放在D:\update\目录下 windows键+X  选择  命令提示符(管理员)  一定要是管理员 打开cmd 分别执行下面两句.红色部分就是自己的更新程序了.其他安装同理 例如Windows8.1-KB2919442-x64.msu 等 1    expand –F:* D:\update\Windows8.1-KB2999226-x64.msu D:\update

pip安装提示PermissionError: [WinError 5]错误问题解决

 问题现象 新安装python3.6版本后使用pip安装第三方模块失败,报错信息如下: C:\Users\linyfeng>pip install lxml Collecting lxml Downloading http://pypi.doubanio.com/packages/fb/41/b8d5c869d01fcb77c72d7d226a847a3946034ef19c244ac12920b71cd036/lxml-3.8.0-cp36-cp36m-win32.whl (2.9MB) 10

windows安装TortoiseGit详细使用教程【基础篇】

环境:win8.1 64bit 安装准备: 首先你得安装windows下的git msysgit1.9.5 安装版本控制器客户端tortoisegit  tortoisegit1.8.12.0 [32和64别下载错,不习惯英文的朋友,也可以下个语言包] 一.安装图解: 先安装GIT[一路默认即可] 安装好git以后,右键,会发现菜单多了几项关于GIT的选项 2.安装tortoisegit[一路默认即可] 安装好以后,右键,会发现菜单多了几项关于tortoisegit的选项 到此,安装算完成了,相

在Win10 Anaconda中安装Tensorflow

有需要的朋友可以参考一下 1.安装Anaconda 下载:https://www.continuum.io/downloads,我用的是Python 3.5 下载完以后,安装. 安装完以后,打开Anaconda Prompt,输入清华的仓库镜像,更新包更快: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_url

Linux下WebSphereV8.5.5.0 安装详细过程

Linux下WebSphereV8.5.5.0 安装详细过程 自WAS8以后安装包不再区别OS,一份介质可以安装到多个平台.只针对Installation Manager 进行了操作系统的区分 ,Websphere产品介质必须通过专门的工具Install Managere安装.进入IBM的官网http://www.ibm.com/us/en/进行下载.在云盘http://yun.baidu.com/share/linkshareid=2515770728&uk=4252782771 中是Linu

Python学习1-Python和Pycharm的下载与安装

本文主要介绍Python的下载安装和Python编辑器Pycharm的下载与安装. 一.Python的下载与安装 1.下载 到Python官网上下载Python的安装文件,进入网站后显示如下图: 网速访问慢的话可直接在这里下载:python-2.7.11.amd64 在Downloads中有对应的支持的平台,这里我们是在Windows平台下运行,所以点击Windows,出现如下: 在这里显示了Python更新的所有版本,其中最上面两行分别是Python2.X和Python3.X对应的最后更新版本

oracle安装故障:完美解决xhost +报错: unable to open display “”

oracle安装 先切换到root用户,执行xhost + 然后再切换到oracle用户,执行export DISPLAY=:0.0 出现乱码执行export LANG=US_en 在这里给大家介绍下两种情况的常见问题: 一种是本地运行的命令,另一种则是远程ssh命令安装. DISPLAY科普 DISPLAY变量是用来设置将图形显示到何处.比如CENTOS,你用图形界面登录进去,DISPLAY自动设置为DISPLAY=:0.0表示显式到本地监视器,那么通过终端工具(例如:xshell)进去,运行

centos7下使用yum安装mysql

CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2. 安装mysql-community-release-el7-5.noarch.rpm包 $ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm 安装这个