01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置



1、下载Nginx,进入Nginx下载地址:http://nginx.org/

点击nginx-1.8.0,进入:http://nginx.org/en/download.html,下载文件:

2 下载pcre,这个是一个正则表达式的库,Nginx做rewriter的时候回用到这个库:

进入pcre的官网(rewrite模式需要pcre):http://www.pcre.org/

选中右击复制所需要的版本:

3 下载zlib库(gzip模块需要zlib):http://www.zlib.net/

4.将下面安装文件上传到Linux服务器上:

5 开始安装Nginx。

在正式开始前,编译环境gcc g++开发库之类的需要提前安装好,这里默认你已经安装好。Ubuntu平台环境可以使用以下指令


apt-get install build-essential


apt-get install libtool

Centos平台编译环境使用如下指令

安装make


yum -y install gcc automake autoconf libtool make

安装g++


yum install gcc gcc-c++

Nginx依赖以下模块:

gzip模块需要zlib库

rewrite模块需要pcre库

ssl功能需要openssl库

 

一般我们需要先安装pcre,zlib,前者为了重写rewrite,后者为了gzip压缩。

选定源码目录,选定/usr/local/src

下载openssl,地址:ftp://ftp.openssl.org/source/

tar -zxvf openssl-1.0.1c.tar.gz   (下载稳定版本)

cd openssl-1.0.1c

./config && make && make  install

 

安装pcre

tar zxvf pcre-8.37.tar.gz

cd pcre-8.37

./configure && make && make  install

 

安装zlib库

tar zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure && make && make install

 

安装nginx.

Nginx一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中的一个,下面是把Nginx安装到/usr/local/nginx目录的详细步骤如下:

tar zxvf nginx-1.8.0.tar.gz

cd nginx-1.8.0

mkdir /usr/local/nginx

 

groupadd -r nginx

useradd -r -g nginx -s /bin/false -M nginx

 

#注意 \ 前面至少一个有空格

[root@localhost src]# cd nginx-1.8.0

[root@localhost nginx-1.8.0]# groupadd -r nginx

[root@localhost nginx-1.8.0]# useradd -r -gnginx -s /bin/false -M nginx

##注意:下面的with后面的路径要正确。若是不正确,请确定后重新编写下面的路径配置。

[root@localhost nginx-1.8.0]# ./configure--sbin-path=/usr/local/nginx/nginx \

>--conf-path=/usr/local/nginx/nginx.conf \

> --pid-path=/usr/local/nginx/nginx.pid\

> --with-http_ssl_module \

> --with-pcre=../pcre-8.37 \  #指向解压的源码目录

> --with-zlib=../zlib-1.2.8 \  #指向解压的源码目录

> --with-openssl=../openssl-1.0.1c \  #指向解压的源码目录

> --with-http_stub_status_module \

> --user=nginx \

> --group=nginx;

 

make && make install

 

在此过程中还可以使用下面的模块:

> --with-http_gzip_static_module \

> --with-http_mp4_module \

> --with-http_flv_module \

 

安装后的现象:

进入/usr/local/nginx,发现有如下内容:

 

启动nginx

/usr/local/nginx/nginx #不指定配置文件地址

/usr/local/nginx/nginx -c/usr/local/nginx/nginx.conf #指定配置文件地址

 

若此过程中出现了如下错误:

nginx: [emerg] bind() to0.0.0.0:80 failed (98: Address already in use)

使用命令关闭占用80端口的程序

sudo fuser -k 80/tcp

 

停止服务:

kill `cat /usr/local/nginx/nginx.pid`

 

在浏览器中输入:192.168.6.25(如果是本机输入localhost)如果看到欢迎界面则安装成功:

 

虚拟主键配置:

只需要更改server_name为对应的网站域名即可:

/usr/local/nginx

vim nginx.conf

 

检测配置文件

/usr/local/nginx/nginx -t

 

重新加载配置文件(不停止服务)

/usr/local/nginx/nginx -s reload

 

Nginx编译参数解析:


–prefix #nginx安装目录,默认在/usr/local/nginx

–pid-path #pid问件位置,默认在logs目录

–lock-path #lock问件位置,默认在logs目录

–with-http_ssl_module #开启HTTP SSL模块,以支持HTTPS请求。

–with-http_dav_module #开启WebDAV扩展动作模块,可为文件和目录指定权限

–with-http_flv_module #支持对FLV文件的拖动播放

–with-http_realip_module #支持显示真实来源IP地址

–with-http_gzip_static_module #预压缩文件传前检查,防止文件被重复压缩

–with-http_stub_status_module #取得一些nginx的运行状态

–with-mail #允许POP3/IMAP4/SMTP代理模块

–with-mail_ssl_module #允许POP3/IMAP/SMTP可以使用SSL/TLS

–with-pcre=../pcre-8.11 #注意是未安装的pcre路径

–with-zlib=../zlib-1.2.5 #注意是未安装的zlib路径

–with-debug #允许调试日志

–http-client-body-temp-path #客户端请求临时文件路径

–http-proxy-temp-path #设置http proxy临时文件路径

–http-fastcgi-temp-path #设置http fastcgi临时文件路径

–http-uwsgi-temp-path=/var/tmp/nginx/uwsgi #设置uwsgi 临时文件路径

–http-scgi-temp-path=/var/tmp/nginx/scgi #设置scgi 临时文件路径

 

6 nginx.conf配置说明:

nginx.conf是主配置文件。


worker_processes   表示工作进程的数量,一般设置为cpu的核数

 


worker_connections  表示每个工作进程的最大连接数

 


server{}块定义了虚拟主机


listener监听端口

 


server_name监听域名

 


Location{}是用来匹配的URI进行配置,URI即语法中的”/uri”。Location /{}匹配任何查询,因为所有请求都以/开头。


root 指定对应uri的资源查找路径,这里html位相对路径,完整路径为/usr/local/nginx/html


Index指定首页index文件的名称,可以配置多个,以空格分开。如有多个,按配置顺序查找。

       


从配置可以看出,nginx监听了80端口、域名为localhost、跟路径为html文件夹(我的安装路径为/usr/local/nginx,所以:/usr/local/nginx/html),默认index文件为index.html,index.htm、服务器错误重定向到50x.html页面。

可以看到/usr/local/nginx/html/有以下文件:


[root@localhost html]# cd /usr/local/nginx/html/

[root@localhost html]# ls

50x.html  index.html

这里是上面在浏览器中输入http://localhost,能够显示欢迎页面的原因。实际上访问的是/usr/local/nginx/html/index.html

 

7 接下来配置一个web项目:

(1)、将web项目上传到/usr/local/nginx/html目录下,目录内容如下:

修改vim nginx.conf的配置,新增的内容如下:

不用关闭nginx的方式启动nginx:

/usr/local/nginx/nginx -c/usr/local/nginx/nginx.conf -s reload

如果发现虚拟机外不能访问,其实是防火墙的问题,需要将防火墙关闭,关闭防火墙的代码如下:

service iptables stop

接着在浏览器中输入:http://192.168.6.25:8080/test/

 

8 mime.types配置

文件扩展名与文件类型映射表,nginx根据映射关系,设置http请求响应头的Content-Type值。当在映射表找不到时,使用nginx.conf中default-type指定的默认值。例如,默认配置中的指定的default-type为application/octet-stream

include       mime.types;

default_type  application/octet-stream;

默认

   下面截取一段mime.types定义的文件扩展名与文件类型映射关系,如下:

9 其它

fastcgi_params

nginx配置Fastcgi解析时会调用fastcgi_params配置文件来传递服务器变量,这样CGI中可以获取到这些变量的值。默认传递以下变量:

这些变量的作用从其命名可以看出。

 

fastcgi.conf

对比下fastcgi.conf与fastcgi_params文件,可以看出只有以下差异:


/usr/local/nginx/conf$ diff fastcgi.conf fastcgi_params

2d1

< fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

即fastcgi.conf只比fastcgi_params多了一行“fastcgi_param SCRIPT_FILENAME    $document_root$fastcgi_script_name;”

原本只有fastcgi_params文件,fastcgi.conf是nginx 0.8.30 (released: 15th of December 2009)才引入的。主要为是解决以下问题(参考:http://www.dwz.cn/x3GIJ):

原本Nginx只有fastcgi_params,后来发现很多人在定义SCRIPT_FILENAME时使用了硬编码的方式。例如,fastcgi_param SCRIPT_FILENAME/var/www/foo$fastcgi_script_name。于是为了规范用法便引入了fastcgi.conf。

不过这样的话就产生一个疑问:为什么一定要引入一个新的配置文件,而不是修改旧的配置文件?这是因为fastcgi_param指令是数组型的,和普通指令相同的是:内层替换外层;和普通指令不同的是:当在同级多次使用的时候,是新增而不是替换。换句话说,如果在同级定义两次SCRIPT_FILENAME,那么它们都会被发送到后端,这可能会导致一些潜在的问题,为了避免此类情况,便引入了一个新的配置文件。

因此不再建议大家使用以下方式(搜了一下,网上大量的文章,并且nginx.conf的默认配置也是使用这种方式):

fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;

include fastcgi_params;

而使用最新的方式:

include fastcgi.conf;

 

uwsgi_params

与fastcgi_params一样,传递哪些服务器变量,只有前缀不一样,以uwsgi_param开始而非fastcgi_param。

 

scgi_params

与fastcgi_params一样,传递哪些服务器变量,只有前缀不一样,以uwsgi_param开始而非fastcgi_param。

 

koi-utf、koi-win、win-utf

这三个文件都是与编码转换映射文件,用于在输出内容到客户端时,将一种编码转换到另一种编码。

koi-win: charset_map  koi8-r < -- > windows-1251

koi-utf: charset_map  koi8-r < -- > utf-8

win-utf: charset_map  windows-1251 < -- > utf-8

koi8-r是斯拉夫文字8位元编码,供俄语及保加利亚语使用。在Unicode未流行之前,KOI8-R 是最为广泛使用的俄语编码,使用率甚至起ISO/IEC 8859-5还高。这3个文件存在是因为作者是俄国人的原因。

 

时间: 2025-01-30 16:53:22

01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置的相关文章

eclipse安装weblogic后部署项目报错,

问题描述 eclipse安装weblogic后部署项目报错, 直接点击base_domain下的start.cmd文件部署发布是伪问题的,求大神指教.... java.lang.Exception: Exception received from deployment driver. See Error Log view for more detail. at oracle.eclipse.tools.weblogic.server.internal.DeploymentProgressList

web.xml-weblogic下部署项目报找不到lang3/StringUtils

问题描述 weblogic下部署项目报找不到lang3/StringUtils 最近项目中的struts相关jar包需要从2.2升级到2.3 版本,升级后在tomcat7下运行正常,当部署到weblogic92下运行时,一直报如下错误: <Could not load use r defined filter in web.xml: org.apache.struts2.dispatcher.ng.filter.StrutsPrepa reAndExecuteFilter. java.lang.

AKM项目总结之Foreign Trade相关的配置

AKM项目总结之Foreign Trade相关的配置 AKM项目里有进口相关的业务,故对于这部分业务,中国南沙工厂的推广项目里,有如下的主要三个配置项目: 1,Foreign Trade Data in MM and SD  Documents,             2, Import Screens in Purchasing Document,       3, Extended Import Document Control,    

Nginx与Tengine环境下部署Thinkphp网站

文武双全之前在Tengine下部署Thinkphp3.2.3的项目,按照thinkphp官方的thinkphp3.2.3文档里的方法完美部署.可是后来维护一个thinkphp3.1的项目,按照官方的部署文档死活在nginx下部署不了.thinkphp官方网站和度娘也查了很多资料,走了很多弯路都不行.在卡了我一周之后,终于完美解决了这个问题.Thinkphp3.1的项目,在Tengine环境下部署成功,该方法同样也适合高版本的Nginx环境. 如图所示,就是文武双全在百度找到的解决这个问题的完美解

thinkphp部署在nginx下 500错误或404错误解决办法

nginx是一个高性能并发的服务器软件,配置方面要稍微比apache复杂一点点. 本地部署成功的一个thinkphp框架,部署到服务器的时候,刚开始因为权限问题抛出404错误,然后chown之后,抛出了500的错误,但是首页能够访问. 复查,应该是伪静态rewrite出现问题了,找了好多文献,解决方案如下: 应该将 location ~ .*\.(php|php5)?$ { #fastcgi_pass  unix:/tmp/php-cgi.sock; fastcgi_pass  127.0.0.

Nginx下zend framework的设置

由于zf自带的工具,生成的项目都是基于apache的,而nginx和apache的htaccess(即Rewriter规则)又不一样 Java代码   server {     listen 80;     server_name servername.com;        root /var/www/zendapp/public;        location / {       index index.php;     }        # Deny access to sensitiv

怎么查看别人的tomcat服务器下部署了什么项目

问题描述 怎么查看别人的tomcat服务器下部署了什么项目 怎么查看别人的tomcat服务器下部署了什么项目.怎么查看别人的tomcat服务器下部署了什么项目.怎么查看别人的tomcat服务器下部署了什么项目.怎么查看别人的tomcat服务器下部署了什么项目.怎么查看别人的tomcat服务器下部署了什么项目.怎么查看别人的tomcat服务器下部署了什么项目 解决方案 Tomcat服务器下部署项目几种方式Tomcat服务器下部署项目几种方式将Rap项目部署至tomcat服务器 解决方案二: 如果你

利用Nginx下伪静态规则解决“No input file specified”问题

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 昨天把博客转到了新的空间,解析了域名,今天发现能ping通了,首页能打开,但是点击详细页面的时候却发现网页一片空白,只有一行提示字:No input file specified. 网上搜索了一下,有各种说法,都未能解决.后来找到比较接近成功的解决方法,就是添加如下伪静态规则: RewriteEngine?On RewriteBase?/ R

Apache下部署ssl协议的步骤介绍

https(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 http 通道,简单讲是 http 的安全版.即 http 下加入 ssl 层,https 的安全基础是 ssl,因此加密的详细内容就需要 ssl. 个人网站用 ssl 证书,国外这几年开始比较流行起来,尤其是 Google 对使用了 ssl 证书的网站收录良好,越来越多的网站开始使用 https 访问了.但是国内的一众搜索引擎对 ssl 就不那么友好