在虚拟机上用nginx怎么搭建lnmp

2024-12-01 12:57:03
推荐回答(2个)
回答1:

<一、参考>

这里以配置2个站点(2个域名)为例,n 个站点可以相应增加调整,假设:

IP地址: 202.55.1.100

域名1 example1.com 放在 /www/example1

域名2 example2.com 放在 /www/example2

配置 nginx virtual hosting 的基本思路和步骤如下:

把2个站点 example1.com, example2.com 放到 nginx 可以访问的目录 /www/

给每个站点分别创建一个 nginx 配置文件 example1.com.conf,example2.com.conf,
并把配置文件放到 /etc/nginx/vhosts/

然后在 /etc/nginx.conf 里面加一句 include 把步骤2创建的配置文件全部包含进来(用 * 号)

重启 nginx

具体过程

下面是具体的配置过程:

1、在 /etc/nginx 下创建 vhosts 目录

mkdir /etc/nginx/vhosts

2、在 /etc/nginx/vhosts/ 里创建一个名字为 example1.com.conf
的文件,把以下内容拷进去

server {

listen 80;

server_name example1.com www. example1.com;

access_log /www/access_ example1.log main;

location / {

root /www/example1.com;

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

# pass the PHP scripts to FastCGI server listening on
127.0.0.1:9000

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME
/www/example1.com/$fastcgi_script_name;

include fastcgi_params;

}

location ~ /\.ht {

deny all;

}

}

3、在 /etc/nginx/vhosts/ 里创建一个名字为 example2.com.conf
的文件,把以下内容拷进去

server {

listen 80;

server_name example2.com www. example2.com;

access_log /www/access_ example1.log main;

location / {

root /www/example2.com;

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

# pass the PHP scripts to FastCGI server listening on
127.0.0.1:9000

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME
/www/example2.com/$fastcgi_script_name;

include fastcgi_params;

}

location ~ /\.ht {

deny all;

}

}

4、打开 /etc/nginix.conf 文件,在相应位置加入 include 把以上2个文件包含进来

user nginx;

worker_processes 1;

# main server error log

error_log /var/log/nginx/error.log ;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

# main server config

http {

include mime.types;

default_type application/octet-stream;

log_format main ‘$remote_addr – $remote_user [$time_local]
$request ‘

‘”$status” $body_bytes_sent “$http_referer” ‘

‘”$http_user_agent” “$http_x_forwarded_for”‘;

sendfile on;

#tcp_nopush on;

#keepalive_timeout 0;

keepalive_timeout 65;

gzip on;

server {

listen 80;

server_name _;

access_log /var/log/nginx/access.log main;

server_name_in_redirect off;

location / {

root /usr/share/nginx/html;

index index.html;

}

}

# 包含所有的虚拟主机的配置文件

include /usr/local/etc/nginx/vhosts/*;

}

5、重启 Nginx

/etc/init.d/nginx restart



<二、我的实例>

--------- vhosts/led.conf

server {

listen
80;

server_name
www.led.com

index
index.html index.htm index.php;

root /usr/local/vhost/led;

#charset koi8-r;

#access_log
logs/host.access.log main;

location / {

root /usr/local/vhost/led;

index index.html index.htm
index.php;

}

#error_page
404
/404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503
504 /50x.html;

location = /50x.html {

root html;

}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

#
proxy_pass
http://127.0.0.1;

#}

location ~
.*\.(php|php5)?$

{

#fastcgi_pass unix:/tmp/php-cgi.sock;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME
/scripts$fastcgi_script_name;
include
fastcgi_params;

}

location ~
.*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

}

location ~ .*\.(js|css)?$

{

expires 1h;

}

log_format
access '$remote_addr - $remote_user [$time_local] "$request"
'

'$status $body_bytes_sent "$http_referer"
'

'"$http_user_agent"
$http_x_forwarded_for';

}

---------------- nginx.conf

user
nginx nginx;
worker_processes 8;

error_log logs/error.log;
#error_log logs/error.log
notice;
#error_log logs/error.log
info;

pid
/usr/local/nginx/nginx.pid;

worker_rlimit_nofile 65535;
events {
use
epoll;

worker_connections 65535;
}

http {

include
mime.types;

default_type application/octet-stream;

#log_format main '$remote_addr
- $remote_user [$time_local] "$request" '

#
'$status $body_bytes_sent "$http_referer" '

#
'"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log
main;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 8m;

sendfile
on;

tcp_nopush
on;

#keepalive_timeout 0;

keepalive_timeout 65;

tcp_nodelay
on;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size
128k;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plain
application/x-javascript text/css application/xml;
gzip_vary
on;

server
{

listen
80;

server_name
_;

server_name_in_redirect off;

location /
{

root
/usr/share/nginx/html;

index
index.html;

}

}

#
包含所有的虚拟主机的配置文件

include
/usr/local/nginx/conf/vhosts/*;

}

回答2:

可以下载一个epel的yum源 +通过命令yum install -y nginx mysql mysql-server php
可以通过源码部署