nginx服务

简介:

1.nginx 安装

1).解压文件

# tar zxf nginx-1.12.0.tar.gz 


 2).创建用户

# useradd -M -d /usr/local/lnmp/nginx -s /sbin/nologin -u 800 nginx


 3).修改配置文件

# vim nginx-1.12.0/auto/cc/gcc

172 #CFLAGS="$CFLAGS -g"        (注释掉这行,去掉 debug 模式编译,编译以后程序只有几百 k)

 

# vim nginx-1.12.0/src/core/nginx.h

 12 #define nginx_version      1012000

 13 #define NGINX_VERSION      "1.12.0"

 14 #define NGINX_VER       "nginx"  (修改此行去掉后面的 “ NGINX_VERSION”,为了安全,这样编译后外界无法获取程序的版本号)


 4).安装软件包依赖文件和nginx服务

# yum install gcc pcre-devel  openssl-devel  -y

# ./configure --prefix=/usr/local/lnmp/nginx --user=nginx --group=nginx --with-threads --with-file-aio  --with-http_ssl_module --with-http_stub_status_module 

 5).重新编译

# make && make install

wKiom1lyKn2RPIi1AAB40cAMMf4194.png


6).做软链接

ln -s /usr/local/lnmp/nginx/sbin/nginx /sbin/

# nginx     启动nginx

# nginx -s stop   停止服务

 

wKioL1lyKn6ghXKvAADW-qVLg-4643.png


测试:

[root@server1 sbin]# nginx 

[root@server1 sbin]# curl -I localhost

HTTP/1.1 200 OK

Server: nginx

Date: Thu, 20 Jul 2017 13:42:42 GMT

Content-Type: text/html

Content-Length: 612

Last-Modified: Thu, 20 Jul 2017 12:57:37 GMT

Connection: keep-alive

ETag: "5970a8c1-264"

Accept-Ranges: bytes

 

wKiom1lyKn_ygLzqAAFuBAtF7xs994.png

 

2.nginx 进程数设置 ,处理最大连接数设置

Nginx默认没有开启利用多核CPU,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核CPU。CPU是任务处理,计算最关键的资源,CPU核越多,性能就越好。

通过 cat /proc/cpuinfo或lscpu来看cpu核心数
(1)cpu有多少个核,就有几位数,1代表内核开启,0代表内核关闭
(2)worker_processes最多开启8个,8个以上性能就不会再提升了,而且稳定性会变的更低,因此8个进程够用了

配置Nginx多核CPU,worker_cpu_affinity使用方法和范例

1. 2核CPU,开启2个进程


# vim /usr/local/lnmp/nginx/conf/nginx.conf

  3 worker_processes  2;        #2个进程

  4 worker_cpu_affinity 01 10;    #cpu内核12

 13 events {

 14     worker_connections  65535;    #连接数

 15 }

 

118 server {

119         listen  80;

120         server_name www.westos.org;

121         location / {

122                 root /web1;

123                 index  index.html;

124         }

 

# vim /etc/security/limits.conf

 51 nginx     -    nofile     65535

 

# usermod -s  /bin/bash  nginx

切换到nginx执行ulimit  -a进行查看最大连接数


wKioL1lyKoCSNGijAAGKp3IaBP8112.png

nginx -t#检测语法

nginx#运行 nginx

nginx -s reload#重载主配置文件

nginx -s stop#关闭 nginx

 

# ulimit -a

 

# mkdir /web1

# cat /web1/index.html

<h1>www.westos.org</h1>

# nginx -s reload

 

测试:

 

wKiom1lyKoCSrm_AAACU8iPKeZQ697.png

wKiom1lyKoGAv4LMAAA15aZbgks834.png


 

##nginxhttps加密服务

 

# vim /usr/local/lnmp/nginx/conf/nginx.conf

 99     server {

100         listen       443 ssl;

101         server_name  localhost;

102 

103         ssl_certificate      cert.pem;

104         ssl_certificate_key  cert.pem;

105 

106         ssl_session_cache    shared:SSL:1m;

107         ssl_session_timeout  5m;

108 

109         ssl_ciphers  HIGH:!aNULL:!MD5;

110         ssl_prefer_server_ciphers  on;

111 

112         location / {

113             root   html;

114             index  index.html index.htm;

115         }

116     }


 ## 生成数字证书

# cd /etc/pki/tls/private/

# openssl genrsa 2048 > localhost.key

# cd /etc/pki/tls/certs/

# make testcert

# cd /etc/pki/tls/certs/

# make cert.pem


wKiom1lyKoLQLCiqAAJez6TGGQk941.png

wKioL1lyKoOzex8DAAI9VqQJmnc819.png

# mv /etc/pki/tls/certs/cert.pem /usr/local/lnmp/nginx/conf/

 

wKiom1lyKoSD7BRSAADTrzX5jTE675.png


# nginx -t

# nginx -s reload

# netstat -antlp        查看端口

 

测试:


wKioL1lyKoXBjk9TAAD2zmY3i_g829.png

wKiom1lyKoXi45jrAACZnBJmCxA380.png


###### nginx 访问控制######

# vim /usr/local/lnmp/nginx/conf/nginx.conf

 49       location /status {

 50               stub_status on;

 51               access_log off;

 52               allow 172.25.62.250;   ##只允许172.25.62.250访问

 53               deny all;

 54       }

 

# nginx -t

# nginx -s reload

测试:# curl http://172.25.62.1/status

 

wKioL1lyKoeCMwQHAAA1XrNvBUY848.png

 ######## nginx网页重写 ######

访问www.westos.org跳转到https://www.westos.org

# vim /usr/local/lnmp/nginx/conf/nginx.conf

105     server {

106         listen       443 ssl;

107         server_name  www.westos.org;

108 

109         ssl_certificate      cert.pem;

110         ssl_certificate_key  cert.pem;

111 

112         ssl_session_cache    shared:SSL:1m;

113         ssl_session_timeout  5m;

114 

115         ssl_ciphers  HIGH:!aNULL:!MD5;

116         ssl_prefer_server_ciphers  on;

117 

118         location / {

119             root   /wed1;

120             index  index.html index.htm;

121         }

122     }

123 

124 server {

125         listen  80;

126         server_name www.westos.org;

127 

128         rewrite ^(.*)$ https://www.westos.org$1 permanent;

129 }

$1可以让访问指定目录,permanent 永久 redirect 暂时


wKiom1lyKofhYC5PAAG_XsB0ogg777.png

# nginx -t

# nginx -s reload

 测试:

 

wKiom1lyKojAfTr4AADsKgyuBYE741.png

wKioL1lyKonBoNJVAAEcKdkMbHw273.png


 ######## nginx负载均衡 #######

1.轮询(默认weight=1)默认选项,当weight不指定时,各服务器weight相同,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2.weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。如果后端服务器down掉,能自动剔除。
比如下面配置,则1.11服务器的访问量为1.10服务器的两倍。

3.ip_hash
每个请求按访问iphash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。如果后端服务器down掉,要手工down掉。

wKiom1lyKouirm0uAAESjoi57jg173.png



4.当2,3的服务都down掉后,本地的服务就会顶上,显示信息proxy_pass反向代理每次改完配置文件都要nginx -t 进行语法检查,nginx  -s reload进行路径更新nginx  -s stop关闭服务

wKioL1lyKouShuN0AADBrqbsU-4425.png

# vim /usr/local/lnmp/nginx/conf/nginx.conf

 18 http {

19        upstream westos {
20        ip_hash;
21       server 172.25.62.2:80 weight=2;
22       server 172.25.62.3:8080;
23#       server 172.25.62.1:8000 backup;
24    }

 25     include       mime.types;

 26     default_type  application/octet-stream;

 

128 server {

129         listen  80;

130         server_name www.westos.org;

131 

132 #       rewrite ^(.*)$ https://www.westos.org$1 permanent;

133         location / {

134                 proxy_pass http://westos;

135         }

136 }

 

wKiom1lyKo2RCb6NAADFWjVwcKY721.png

wKiom1lyKonCDDFVAAB6PGljCMg329.png


测试:

# for i in {1..10};do curl www.westos.org;done

<h1>server3-www.westos.org</h1>

<h1>server2</h1>

<h1>server3-www.westos.org</h1>

<h1>server2</h1>

<h1>server3-www.westos.org</h1>

<h1>server2</h1>

<h1>server3-www.westos.org</h1>

<h1>server2</h1>

<h1>server3-www.westos.org</h1>

<h1>server2</h1>

 

wKioL1lyKoqRKpvNAAD8K2kdHoQ066.png


本文转自cuijb0221 51CTO博客,原文链接:http://blog.51cto.com/cuijb/1949919


相关文章
|
6月前
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
6月前
|
应用服务中间件 nginx
树莓派安装Nginx服务结合内网穿透实现无公网IP远程访问
树莓派安装Nginx服务结合内网穿透实现无公网IP远程访问
|
6月前
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
91 1
|
30天前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
50 5
|
16天前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
1月前
|
应用服务中间件 Apache 开发工具
nginx服务企业应用
nginx服务企业应用
|
1月前
|
应用服务中间件 网络安全 nginx
nginx作为web服务以及nginx.conf详解
nginx作为web服务以及nginx.conf详解
|
1月前
|
Kubernetes 应用服务中间件 nginx
k8s基础使用--使用k8s部署nginx服务
本文介绍了Kubernetes中核心概念Deployment、Pod与Service的基本原理及应用。Pod作为最小调度单元,用于管理容器及其共享资源;Deployment则负责控制Pod副本数量,确保其符合预期状态;Service通过标签选择器实现Pod服务的负载均衡与暴露。此外,还提供了具体操作步骤,如通过`kubectl`命令创建Deployment和Service,以及如何验证其功能。实验环境包括一台master节点和两台worker节点,均已部署k8s-1.27。
138 1
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
67 0
|
3月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)