Nginx打卡

Nginx打卡

nginx 干啥的

      * 俄罗斯非著名相声演员Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的一个高性能的HTTP和反向代理服务器,同时其也是一个IMAP/POP3/SMTP 代理服务器。

nginx 最牛逼的两点 

      * 反向代理

      * 负载均衡

ngnix 架构

      * Nginx 在启动后,会有一个 master 进程和多个 worker 进程。master 进程主要用来管理 worker 进程,包含:接收来自外界的信号,向各 worker 进程发送信号,监控 worker 进程的运行状态,当 worker 进程退出后(异常情况下),会自动重新启动新的 worker 进程。而基本的网络事件,则是放在 worker 进程中来处理了。多个 worker 进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个 worker 进程中处理,一个 worker 进程,不可能处理其它进程的请求。worker 进程的个数是可以设置的,一般我们会设置与机器cpu核数一致。

 

Nginx安装

1.安装C++编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

2.安装 PCRE 为了使nginx支持Rewrite功能

# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2.1解压安装包

# tar zxvf pcre-8.35.tar.gz

2.2.进入安装包目录 编译安装

# cd pcre-8.35

# ./configure

# make && make install

3.安装Nginx

3.1下载安装包

# wget http://nginx.org/download/nginx-1.6.2.tar.gz

3.2解压安装包

# tar zxvf nginx-1.6.2.tar.gz

3.3 进入安装包目录编译安装

# cd nginx-1.6.2

# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35

# make

# make install

3.4 查看nginx版本

# /usr/local/webserver/nginx/sbin/nginx -v

Nginx 的配置系统

创建nginx运行使用的用户 www:

# /usr/sbin/groupadd www

# /usr/sbin/useradd -g www www

关于nginx的配置请查阅相关资料照猫画虎

以上是安装时参考的,来自于菜鸟教程

以下又是一些概念,来自于W3Cschool

Nginx 的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,全部位于Nginx 安装目录下的 conf 目录下。

配置文件中以#开始的行,或者是前面有若干空格或者 TAB,然后再跟#的行,都被认为是注释,也就是只对编辑查看文件的用户有意义,程序在读取这些注释行的时候,其实际的内容是被忽略的。

由于除主配置文件 nginx.conf 以外的文件都是在某些情况下才使用的,而只有主配置文件是在任何情况下都被使用的。所以在这里我们就以主配置文件为例,来解释 Nginx 的配置系统。

在 nginx.conf 中,包含若干配置项。每个配置项由配置指令和指令参数 2 个部分构成。指令参数也就是配置指令对应的配置值。

简单配置项 不需要花括号括起来 eg.

error_page 500 502 503 504 /50x.html;

复杂配置项需要花括号括起来 eg.

location / {

     root /home/jizhao/nginx-book/build/html; index index.html               index.htm;

}

指令上下文

nginx.conf 中的配置信息,根据其逻辑上的意义,对它们进行了分类,也就是分成了多个作用域,或者称之为配置指令上下文。不同的作用域含有一个或者多个配置项。

当前 Nginx 支持的几个指令上下文:

  • main: Nginx 在运行时与具体业务功能(比如http服务或者email服务代理)无关的一些参数,比如工作进程数,运行的身份等。
  • http: 与提供 http 服务相关的一些配置参数。例如:是否使用 keepalive 啊,是否使用gzip进行压缩等。
  • server: http 服务上支持若干虚拟主机。每个虚拟主机一个对应的 server 配置项,配置项里面包含该虚拟主机相关的配置。在提供 mail 服务的代理时,也可以建立若干 server,每个 server 通过监听的地址来区分。
  • location: http 服务中,某些特定的URL对应的一系列配置项。
  • mail: 实现 email 相关的 SMTP/IMAP/POP3 代理时,共享的一些配置项(因为可能实现多个代理,工作在多个监听地址上)。

指令上下文,可能有包含的情况出现。例如:通常 http 上下文和 mail 上下文一定是出现在 main 上下文里的。在一个上下文里,可能包含另外一种类型的上下文多次。例如:如果 http 服务,支持了多个虚拟主机,那么在 http 上下文里,就会出现多个 server 上下文。

我的问题其实就在域名跳转这里,今天找到一个大佬写的,但是还没能完全成功,估计是我哪里搞的还是有问题,需要反复琢磨。

以下是大佬关于http server的配置

server {

         listen       80;

         server_name  bbs.xxx.com;

        location / {

                  proxy_pass http://bbs.xxx.com:9066/;

         }

}

不得不说,我抄袭的这个没有半点意义,因为我现在还访问不到nginx主页,但也有点gg,我可以不带端口的访问到我的工程。。。具体问题后续跟踪。

 

猜你喜欢

转载自www.cnblogs.com/zhaiyt/p/ngnix.html